为什么父类Base
的私有方法在下面的代码中的子类Child
中可见?
public class Trial {
class Base {
private void foo()
{
}
}
class Child extends Base {
private void func()
{
super.foo();
}
}
}
如果Base
和Child
类不是内部类,则不可能。为什么内部类的这种行为?
答案 0 :(得分:0)
[If]成员或构造函数被声明为private,当且仅当它出现在包含成员或构造函数声明的顶级类(第7.6节)的主体内时才允许访问。
- https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#d5e9880