【问题标题】:How to run a parents method twice如何两次运行父母方法
【发布时间】:2016-09-03 11:57:56
【问题描述】:

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

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!";
}

我有多种不同的武器,我想使用并在这方面取得了成功,但是我有一把匕首,我想每回合攻击两次,而不是像其他人那样攻击一次。这是我用来设置匕首伤害值的类:

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;
    }

我希望它在同一行上攻击两次,而不是打印两次攻击。我想知道我可以在匕首类中改变什么,这将允许我这样做。 任何帮助当然感谢您!

【问题讨论】:

  • 只调用两次成员函数?
  • 我在哪里称呼它,匕首类还是主类?
  • 好的,谢谢兄弟!完美运行

标签: java inheritance methods


【解决方案1】:

这个答案是对@Arnav 的 cmets 的解释。这里Dagger是主类weapon的子类,当Dagger的攻击方法被调用时,你想调用超类'attack两次。

为此,您需要从Dagger 攻击方法调用super.attack 两次:

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
}

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

【讨论】:

  • 非常感谢,看来所有的代表都是应得的。工作完美:)
猜你喜欢
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-22
相关资源
最近更新 更多