如图,这可以说明Java中子类可以继承父类的私有字段么?
发布网友
发布时间:2022-06-09 21:56
我来回答
共4个回答
热心网友
时间:2024-11-18 06:59
应该可以说明,不过看起来不够清晰~也有些困扰~
↓
一眼看上去只能说明继承了父类的get set方法~
因为创建的Manager对象代码中很直观地调用了父类的 get set方法
↓
相关知识:“this关键字总是指向调用该方法的对象”
return this.name; 往子类看,是在say()方法中被调用了~ 否则根本出不了名字
所以这里的this 是Manager对象,而不是父类Employee
↓
既然能调用 this.name,子类自己却没有声明name属性,那么就说明继承了父类的name属性~
↓
总结:父类的私有属性,子类可以继承,但是却无法在除父类自己代码范围之外被调用
另外,这段代码有些马虎,按照OOP思想,父类Employee自己就应该有个say() 方法,子类继承是重写say() 方法……
我说的不正确的话,麻烦Java的老油条指正!
热心网友
时间:2024-11-18 06:59
子类继承父类的所有(包括私有属性),但是却不能调用父类的私有属性,父类私有的属性方法等子类都不能调用,所以子类里用的getName()在父类里是public的。这是java的一个特性,叫封装
热心网友
时间:2024-11-18 07:00
有继承,但,没法直接访问的。
class Parents{
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){return this.name;}
}
class ParentsSon extends Parents{
//如果覆盖setName或getName,则不能访问到父类的name变量
}
public class Parent{
public void test(){
ParentsSon son = new ParentsSon();
son.setName("Simon");
System.out.println(son.getName());
}
public static void main(String args[]){
new Parent().test();
}
}
热心网友
时间:2024-11-18 07:00
private 是私有的,父类也应该算私有。当爹的也得有点隐私啊.. 你调用的只是它的getsetter方法