Java 代码如下:
public class A {
private static int a;
public static class B {
static void funcc() {
a = 3;
}
}
}
public class C extends A.B {
public void func() {
a = 1;
}
}
当我尝试编译它时,发生错误:
C.java:3: error: cannot find symbol
a = 1;
^
symbol: variable a
location: class C
1 error
为什么会发生这种情况?
最佳答案
B
是静态
。这使得它相当于在顶层声明它。它不是嵌套类,并且无法访问其词法包含类中的任何私有(private)内容。
关于java - 为什么嵌套类的子类无法访问嵌套类的私有(private)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547437/