Java继承方法使用了错误的类

标签 java inheritance

所以我有一个父类,这里称为 A,以及扩展 A 的类 B。

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

public class B extends A
{
  private int a = 2;
}

但是,当调用 B.getA() 时,它从 A 类返回 1,而不是 B 类中的 2。我做错了什么吗?因为几个月前我也遇到过类似的问题,经过一番折腾后奇迹般地解决了。唯一的区别是该方法处理将对象添加到 ArrayList。

谢谢。

最佳答案

私有(private)变量甚至对于子类也是私有(private)的。 A.a和B.a是两个完全不同的领域。如果您想更改子类中的数据,请将其设为 protected 字段,或者(更好)向父类添加可选的抽象 getter 并在子类中覆盖它。

关于Java继承方法使用了错误的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651220/

相关文章:

c# - 将 'set' 添加到 C# 中的接口(interface)属性

java - 用Java实现一个简单的游戏(图形相关)

java - Selenium 无法点击 Gaana 网页上的 'continue with google' 链接

java - 求最长不包含重复字符的子串的长度

java - Fedora 25 - 拒绝识别 Java JDK,$JAVA_HOME 似乎是正确的

c++ - c++中隐藏特定函数的一种方法

c# - 继承和强类型 View

java - 单击 JMenuItem 时执行操作?

javascript - 如果他没有名字,是什么让 object.prototype 成为构造函数?

c++ - 具有可变参数模板的类成员函数继承