我正在尝试为我的对象设置一个属性,但该值来自一个数学函数,它的值将从类子类中获取。
我试过在构造函数上使用方法 init,但没有
主要类:
public abstract class Player {
private double attackPower;
private double defensePower;
private double generalPower;
// Getters and Setters
// The method to set the generalPower
private void setGeneralPower(){
this.generalPower = defensePower + attackPower * 100;
}
其中一个是子类:
public class Goalkeeper extends Player {
private static final double DEFENSE_COEFFICIENT = 3.0;
private static final double ATTACK_COEFFICIENT = 0.5;
@Override
public void setAttackPower(double attackPower) {
super.setAttackPower(attackPower * ATTACK_COEFFICIENT);
}
@Override
public void setDefensePower(double defensePower) {
super.setDefensePower(defensePower * DEFENSE_COEFFICIENT);
}
}
当我在getGeneralPower() 函数上插入数学函数时,该函数返回正确的值,但我需要将该值放在属性中以便将来进行比较。如果我在构造函数中插入该方法,我将得到一个 0.0 值。如果我在构造函数上使用 init 方法并setGeneralPower()从 init 主体调用,它也会给我一个 0.0 结果。
之所以有一个setGeneralPower()是为了设置属性的值generalPower。
蝴蝶刀刀
相关分类