java - 在继承类中使用私有(private)变量 - Java

标签 java inheritance access-modifiers

需要对私有(private)变量和继承有更多的了解。早些时候我的理解是如果一个类中有字段并且当我继承该类时,不受访问(私有(private)变量)限制的字段将存在于继承的类中。但如果有公共(public) g/setter 方法,我可以在基类中使用私有(private)变量。

我如何想象基类中的私有(private)变量?

最佳答案

class A {
  private int a;
  public A(int a) { this.a = a; }
  public int getA() {return a;}
}

class B extends A {
  public B(int b) { super(b); }
  public int getB() {return getA();}
}

int result = new B(10).getA();

结果将是 10。类 A 中的私有(private)字段 a 有点继承给 B 但 B 不能直接访问它。仅通过使用 A 类中定义的公共(public)/默认/ protected 访问器方法。B 是 A,因此它始终具有 A 中的所有相同字段,并且可能在 B 类中定义一些新字段。

关于java - 在继承类中使用私有(private)变量 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549775/

相关文章:

Java:将 UTF 8 转换为字符串

java:在Windows Eclipse中编译具有相同名称但大小写不同的文件

java - java中的独立ssl web服务

ios - 指定初始化程序?

调用 Swift 协议(protocol)扩展方法而不是子类中实现的方法

java - SonarQube 漏洞 : Explicitly declare the visibility for variable

java - 比类访问修饰符限制更少的成员访问修饰符有什么用?

java - 凸包中的额外点(使用格雷厄姆扫描)错误+ java

c++ - “base”是 ‘deriv’ 的不可访问基

c# - 用于设置不同修饰符来获取/设置的一行代码