java - 为什么嵌套类的子类无法访问嵌套类的私有(private)字段?

标签 java nested-class private-members

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/

相关文章:

java - 递归调用方法

java - 如何在Java中定义嵌套类对象的数组列表?

C++ 编译器错误无法访问类 'std::basic_ios<_Elem,_Traits>' 中声明的私有(private)成员

c++ - 从基类指针调用 C++ 中的私有(private)函数

c++ - 变量在 MFC 类中放置私有(private)关键字的差异

Java 可选 Null Json 字段

java - 如何将 CSS 用于 Vaadin 组件?

java - 为什么mybatis强制打印log4j DEBUG信息到控制台

python - 在 Python 中嵌套 3 个类时语法错误?

c++ - C++ 子类是否可以共享相同的模板?