可能类似的问题,
Why can outer Java classes access inner class private members?或
Access to superclass private fields using the super keyword in a subclass。
但是有一些区别:子类可以访问其父(和最近的父)类的私有成员。
给定以下示例代码:
public class T {
private int t;
class T1 {
private int t1;
public void test() {
System.out.println(t);
}
}
class T2 extends T1 {
private int t2;
public void test() {
System.out.println(t);
System.out.println(super.t1);
System.out.println(this.t2);
}
}
class T3 extends T2 {
public void test() {
System.out.println(t);
System.out.println(super.t1); // NG: t1 Compile error! Why?
System.out.println(super.t2); // OK: t2 OK
}
}
}