所以我有一个父类,这里称为A,而B类则扩展为A.
public class A
{
private int a = 1;
public int getA()
{
return a;
}
}
public class B extends A
{
private int a = 2;
}
Run Code Online (Sandbox Code Playgroud)
但是,当调用B.getA()时,它会从A类返回1而不是B类中的2.我做错了吗?因为几个月前我遇到了类似的问题,并且在经历了很多混乱后奇迹般地工作了.唯一的区别是该方法处理将对象添加到ArrayList.
谢谢.
私有变量甚至是子类的私有变量.Aa和Ba是两个完全不同的领域.如果要更改子类中的数据,请将其设置为受保护的字段,或者(更好的是)将可选的抽象getter添加到父类并在子类中覆盖它.
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |