java - 子类是否继承父类(super class)的私有(private)实例变量

标签 java inheritance encapsulation information-hiding

Do subclasses inherit private fields?

这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。

http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

表示“子类不继承其父类的私有(private)成员。”

这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?

但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?

此外,我的计算机科学书籍(Baron 的 AP Computer Science A)对“(子类)从(父类(super class))继承了所有私有(private)实例变量和公共(public)访问器方法”的问题有正确答案。

这不是oracle教程的缩写吗?

谢谢你的帮助

最佳答案

访问器可以正常工作。请记住,访问器在父类(super class)的“上下文”中运行,因此访问器将能够看到对子类隐藏的成员。

至于教科书,就看你的观点了。子类继承了私有(private)成员,因为它们实际上存在于子类的实例中(因此它们会占用内存等),但子类将无法直接访问它们。

关于java - 子类是否继承父类(super class)的私有(private)实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491002/

相关文章:

java - 初始化抽象类的成员,子类没有写访问权限

Java Double Format即使为零也显示2个小数点

java - 如何在@AfterMethod中将@Test标记为失败

Java游戏无法运行

java - 子类的不同构造函数

java - 当您不向任何人公开任何内容时,您真的需要封装吗?

python - 在 Python 中动态添加属性不受欢迎吗?

java - 如何在Java中过滤重定向链接中的空格?

perl - 如何让所有继承的方法返回子类对象?

javascript - 为什么 Object#create 必须先于子类的实例化