我有这两节课:
Class A
{
public int max = 100;
public int getMax()
{
return max;
}
}
Class B extends A
{
public int max = 200;
}
我编写以下代码:
A clsA = new A();
B clsB = new B();
valA = clsA.getMax();
valB = clsB.getMax();
valA是100
valB又是100
如何编写
clsB.getMax();
返回200的代码? 最佳答案
您可以在B类中覆盖getMax:
@Override
public int getMax()
{
return max;
}
虽然,总的来说,在超类和子类中具有相同名称的变量是一个坏主意。
请注意,更改后,以下内容也会返回200:
A clsB = new B();
valB = clsB.getMax();