超类方法获取子类变量

丰多

我有一个超类和一个子类。在超类中,我尝试使用一种方法从子类中获取变量。我有2个子类,每个子类在此变量上具有不同的值。我该怎么做呢?它是这样的:

public class SuperClass{

protected int health;

public int getHealth()
{
    return health;
}

然后我有我的子类:

public class SubClass1 extends SuperClass{

private int health = 30;

public SubClass1() {
    super();
}
}

public class SubClass2 extends SuperClass{

private int health = 50;

public SubClass2() {
    super();
}
}

然后,我尝试使用JTestUnit进行测试:

public class SubClass1{

@Test
public void testGetHealth()
{
    SubClass1 unit = new SubClass1();
    assertEquals(unit.getHealth(), 30);
}

但这是行不通的。我如何获取值取决于创建的是SubClass1还是SubClass2对象(实例?)?提前致谢!

乔普·艾根(Joop Eggen)

消除

private int health = 30;

它声明一个新变量,其名称将其隐藏在超类中。

并在构造函数中初始化

public SubClass2() {
    super();
    health = 30;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章