0

我正在根据Trystan 的教程制作一个 roguelike,并遇到了实现类系统的问题。我很确定解决方案很简单,但请耐心等待。

class Creature {
    int HP;
    CharacterClass playerClass = new Wizard();
    HP = playerClass.hitDie;
    ArrayList<Ability> creatureAbilityList = new ArrayList<>();
    creatureAbilityList.add(classAbilityList.get(1));
}

class CharacterClass {
    int hitDie;
    ArrayList<Ability> classAbilityList = new ArrayList<>();
}

class Wizard extends CharacterClass {
    Wizard() {
        hitDie = 6;
        classAbilityList.add(new Ability(magicMissile));
    }
}

我在“new Wizard()”后面的分号上收到“令牌“;”,预期的语法错误。我相当确定这不是问题,而是我的类和继承的设置方式。我应该如何设置代码?任何帮助,将不胜感激。

4

2 回答 2

3

问题是下面的行。它应该是

    int HP=playerClass.hitDie;

(并删除线int HP;

于 2017-10-25T07:02:36.867 回答
0

您应该将 hitDie 设为私有,并使用 getter 和 setter 使其可访问以启用多态(因此调用的 getHitDie() 将是类 Wizard 的一个,而不是 CharacterClass 类的一个)

于 2017-10-25T07:02:29.617 回答