【发布时间】:2016-04-20 19:41:13
【问题描述】:
我知道您可以从构造函数中调用方法,但是如果可以覆盖该方法,以后可能会导致问题。下面的代码只是我写的一个例子来展示我的问题:
假设我有以下 子类:
private boolean isActive;
public ChargeGun(String gameObjectID, String gameObjectName, String desc, int numberofshots, int damage, boolean isActive) {
super(gameObjectID, gameObjectName, desc, numberofshots, damage);
setAttributes(isActive);
}
public ChargeGun(String gameObjectID, String gameObjectName, int numberofshots, int damage, boolean isActive) {
super(gameObjectID, gameObjectName, numberofshots, damage);
setAttributes(isActive);
}
private final void setAttributes(boolean isActive)
{
this.isActive = isActive;
}
boolean isActive 专用于ChargeGun,而不是任何其他枪。鉴于我的子类中有两个构造函数,而不是两次输入isActive = true,我可以调用private final method 来执行它吗?原因是,如果我的 ChargeGun 属性增长,那么我将不得不在两个构造函数中添加属性。如果我使用私有的 final 方法来做,一切都设置在一个地方。这是不好的做法吗?
我不能链接 ChargeGun 构造函数,因为它们都调用超类构造函数。
【问题讨论】:
标签: java constructor