我有这两节课:

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();

10-04 20:53