java - 如何使用父类从子类获取参数?

标签 java inheritance

我有这个子类 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/

相关文章:

java - 如何使用 session 工厂从 Java Hibernate 执行 sql 存储过程?

java - 覆盖方法,使参数需要子类

java - 使用单表继承时如何在Ebean查询中使用鉴别器值?

java - 如何禁用密度设置?

java - BIRT:如何以编程方式删除数据集参数

java - 用于记录传感器数据的 Android 按钮

java - Mono::然后返回 null

inheritance - 重置继承的不透明度/过滤器 :alpha to full transparency

C++如何使类类型更通用并将其用作一种接口(interface)

iphone - 如何使用 Objective-C 协议(protocol)