我有一个超类和一个子类。在超类中,我尝试使用一种方法从子类中获取变量。我有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对象(实例?)?提前致谢!
消除
private int health = 30;
它声明一个新变量,其名称将其隐藏在超类中。
并在构造函数中初始化
public SubClass2() {
super();
health = 30;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句