我有这个子类 AggressiveAlien,这是其中的一种方法
public boolean attack()
{
boolean attack;
if (currentLocation == this.AggresiveAlien.getCurrentLocation)
{
energyCanister = (int) ( (1/2) * alien2.energyCanister + energyCanister);
lifePoints = (int) (lifePoints - (1/2)*alien2.energyCanister);
attack = true;
}
return attack;
}
我希望在父类 Alien 中使用返回值
public void gotAttacked()
{
if (AggresiveAlien.attack())
energyCanister = energyCanister/2;
}
但它似乎在 AggresiveAlien.attack() 部分出现错误。我有什么办法可以使用 AggresiveAlien 的返回值在 Alien 中使用吗?
非常感谢您的帮助。谢谢!
这是子类的另一部分
公共(public)类 AggressiveAlien 扩展了 Alien { public AggressiveAlien(XYCoordination currentLocation, int energyCanister) { super (当前位置,能量 jar ); }
public int collectCanister(NormalPlanet canister)
{
super.collectCanister();
n=1;
}
最佳答案
我认为你可能遇到两个问题...首先你需要将基类型转换为子类型,例如
((AggressiveAlien)this).attack()
而且,1/2 实际上可能是 0! 1 和 2 被解释为整数,这意味着任何除法的值都会被下限!所以 1/2 = (int) 0.5 = 0
检查你的类型!您最好使用 0.5 或使用/2.0 强制将值计算为浮点型或 double 型(取决于平台)。
希望这有帮助!
关于java - 如何使用父类从子类获取参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4358262/