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

vic*_*ini 7 java inheritance inner-classes

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

public class Trial {

    class Base {
        private void foo()
        {
        }
    }

    class Child extends Base {
        private void func()
        {
            super.foo();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Jir*_*sek 0

\n

[如果]成员或构造函数被声明为私有,[那么]当且仅当访问发生在包含成员或构造函数声明的顶级类 (\xc2\xa77.6) 的主体内时,才允许访问。

\n
\n\n

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

\n