衆所周知,私有字段不會在類之間繼承。什麼讓我感興趣,它是如何工作的內部靜態類。 考慮下面的代碼:訪問超類的私有字段
public class Main {
public static void main(String[] args) {
new B();
}
private static class A {
private int a = 10;
private void foo() {
System.out.println("A.foo");
}
}
private static class B extends A {
{
// foo(); // compile-time error
super.foo(); // ok
// System.out.println(a); // compile-time error
System.out.println(super.a); // ok
}
}
}
能否請你解釋它是如何可以訪問其他內部類的私有字段?如果它是合法的,爲什麼只有通過「super.XXX」構造纔有可能?
我認爲修飾符只與外部類有關。內部類都崩潰了...... – 2014-09-23 09:24:42