具有不同值的子类构造函数



我有父类Hammer,然后是他的子类Mjolnir。我想将Mjolnir的remainingUsage设置为4。我在Hammer类中创建了一个名为setUsage的方法,然后在Mjolnir构造函数中使用它。如果没有setUsage方法,有可能以更简单的方式完成吗?

public class Hammer extends AbstractActor {
private int remainingUsage;
private Animation image;
public Hammer() {
this.remainingUsage = 1;
image = new Animation("sprites/hammer.png");
setAnimation(image);
}
}
public class Mjolnir extends Hammer {
Mjolnir(){
super();
this.setUsage(4);
}
}

您可以这样做:

private remainingUsages;
public Hammer() { this(1); }
public Hammer(int remainingUsages) { this.remainingUsages = remainingUsages; }

然后从您的子类中调用super(4)。在构造函数中调用其他方法不是一种好的做法。

最新更新