我在名为PlayableFighter的java类中使用此构造函数
public PlayableFighter(String name, int maxHealthPoints, int blastDamage, int physicalDamage,
int maxKi, int maxStamina, ArrayList<SuperAttack> superAttacks, ArrayList<UltimateAttack>
ultimateAttacks)
我想从一个名为Earthling的类中调用它继承PlayableFighter,但我没有superAttacks或ultimateAttacks的值,所以我想将它们设置为默认值,我使用null但有更好的方法吗?
public Earthling(){
super("Earthling",1250,50,50,4,4,null,null);
}
答案 0 :(得分:1)
如果您可以管理PlayableFighter
的代码,我建议添加另一个构造函数来获取除“superAttacks”和“ultimateAttacks”之外的所有参数,这些参数将使用默认参数调用其他构造函数,如下所示:
public PlayableFighter(String name, int maxHealthPoints, int blastDamage, int physicalDamage, int maxKi, int maxStamina){
this(name, maxHealthPoints, blastDamage, physicalDamage, maxKi, maxStamina, null, null);
}
答案 1 :(得分:0)
我不喜欢看到以这种方式抛出的零点。在创建对象时,对象应该100%准备就绪。
我这样做:
while l~=p
n=p-l;
t=t-n;
[dt,~]=history(con,s,f,t,T);
l=length(dt);
end
你并没有像你一样使用继承。我有一个public Earthling() {
super("Earthling",1250,50,50,4,4,new ArrayList<SuperAttack>(), new ArrayList<UltimateAttack>());
}
接口,其中包含子类Attack
和UltimateAttack
。
你的命名很糟糕。谁能知道这两者之间的区别是什么?
为什么你必须通过&#34; Earthling&#34;标签到SuperAttack
课程?更愚蠢。
你在默认构造函数中传递给超级构造函数的那些神奇数字是什么?更愚蠢。