所以我有一个父类,这里称为 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/