【发布时间】:2018-09-05 03:34:12
【问题描述】:
不要说重复这个问题地址,该字段在程序中的位置不是它是否被继承,或者它是否被继承但不可访问。
请继续阅读了解
在下面的示例中,我们看到狗对象可以访问动物私有字段“name”抛出使用公共getter“getName”但不是私有字段不被继承所以字段名称所在的位置
通过搜索,我意识到只有一个对象是从子类创建的,而不是两个一个到 sub 和一个到 super 来保存私有字段。
立即关注>>我们都知道任何类中的公共设置器都可以设置其私有字段,但我们知道该字段的位置!在类的对象中
所以我的摘要问题如下
访问的私有字段在子类创建的对象中的位置!
它在哪里!
public class Animal {
private String name ;
public Animal (String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
}
public class Hello {
public static void main(String[] args) {
Dog mmms = new Dog("mmkk");
System.out.println(mmms.getName());
}
}
编辑:我认为这个问题可以表述为
如果父类的私有字段不被继承,它在哪里?
问题名称已更改,以便获得更多理解
子类对象如何从公共 getter 访问其父类的私有成员?
到
使用公共 getter 从子类访问时,超类的私有字段在哪里?
【问题讨论】:
-
你在
Dog类中调用super(name);时设置了Animal类中的字段 -
我知道我做到了,但是在我的对象中它不是继承还是它在哪里?
-
我的问题集中在它在哪里而不是我是如何做到的,但最好解释一下
-
子类的对象包含超类的私有字段。所以从某种意义上说它们是继承的,你只是不能在子类中访问它们。
-
不,如果你读得好,你看我说的是不一样的,如果它是继承的,这是一个愚蠢的问题
标签: java