当子类和父类都是内部时,java中的继承行为

时间:2016-10-27 11:15:13

标签: java inheritance inner-classes

为什么父类Base的私有方法在下面的代码中的子类Child中可见?

public class Trial {

    class Base {
        private void foo()
        {
        }
    }

    class Child extends Base {
        private void func()
        {
            super.foo();
        }
    }
}

如果BaseChild类不是内部类,则不可能。为什么内部类的这种行为?

1 个答案:

答案 0 :(得分:0)

  

[If]成员或构造函数被声明为private,当且仅当它出现在包含成员或构造函数声明的顶级类(第7.6节)的主体内时才允许访问。

- https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#d5e9880