gpt4 book ai didi

java - 如何运行 parent 方法两次

转载 作者:行者123 更新时间:2023-12-02 03:23:32 25 4
gpt4 key购买 nike

我正在制作一个游戏,它使用父级来运行攻击类,如下所示

public String attack(int damage, int extradamage, String type) {

int hitpossibility;

hitpossibility = (int) ((Math.random() * 100) + 1);
if (type.compareTo("Ranged") == 0) {
weaponnoise = "twang!";

}else{
weaponnoise = "swing!";
}

if (chancetohit >= hitpossibility) {
for (int x = 0; x < damage; x++) {
result = result + (int) ((Math.random() * 6) + 1);
}
result = result + extradamage;
return weaponnoise + " The " + name + " did " + +result + " damage";


}
return weaponnoise +"The " +name+" missed!";
}

我有多种不同的武器,我想使用它们并且已经成功,但是我有一把 Dagger ,我想每回合攻击两次,而不是像其他人那样攻击一次。这是我用来设置 Dagger 伤害值的类:

public class Dagger extends Blade {

public Dagger() {
super();
damage = 1;
extradamage = -1;
chancetohit = 75;
}

public String attack(int damage, int extradamage, String type) {

return super.attack(damage, extradamage, type);
}

然后我有一个运行它的类,目前它执行以下操作:

    for (int l = 0; l < 2; l++) {
System.out.println(pointy.attack(pointy.damage, pointy.extradamage, pointy.getType()));
monsterhealth = monsterhealth - pointy.result;
System.out.println(monsterhealth);
pointy.result = 0;
}

我希望它在同一行上攻击两次,而不是打印两次攻击。我想知道我可以在 Dagger 类中进行哪些更改,以允许我这样做。任何帮助当然不胜感激,谢谢!

最佳答案

这个答案是对 @Arnav 评论的解释。这里Dagger是主类 weapon 的子类类并且您想要调用父类(super class)'attack Dagger的攻击方法两次时叫做。

为此,您需要调用super.attack两次来自 Dagger攻击方式:

public class Dagger extends Blade {

public Dagger() {
super();
damage = 1;
extradamage = -1;
chancetohit = 75;
}

public String attack(int damage, int extradamage, String type) {
String result1 = super.attack(damage, extradamage, type);
String result2 =super.attack(damage, extradamage, type);
return // You can return result1 or result2 based on your requirement
}

注意:我删除了之前的答案,因为这种方法比另一种方法更好。

关于java - 如何运行 parent 方法两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com