我有一个父类(super class)和一个子类。在父类(super class)中,我尝试使用方法从子类获取变量。我有 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;
它声明了一个新变量,其名称隐藏了父类(super class)中的变量。
并在构造函数中初始化
public SubClass2() {
super();
health = 30;
}
关于java - 父类(super class)方法获取子类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27274663/