我正在写一个简单的游戏,你可以选择不同种类的动物。 Animals
是Entity()
的子类,它是GameObject()
的子类。我还为您可以扮演的动物创建了一个界面IPlayableAnimal
。因此,当创建Player
对象时,您需要将其传递给IPlayableAnimal
。现在这个工作正常,但我也想访问Entity
特定的方法,但是由于PlayableAnimal
被传递,我只能使用IPlayableAnimal
形式的方法(当然会被它的子类覆盖)。
有没有办法访问Entity
方法?或者我是否必须使用Entity
接口的抽象方法创建IPlayableAnimal
的子类,或者将IPlayableAnimal
和Entity
对象传递给Player
对象
public class Player extends Entity {
private IPlayableAnimal character;
public Player(int x, int y, IPlayableAnimal character) {
this(x, y, character, true);
}
public Player(int x, int y, IPlayableAnimal character, boolean visible) {
super(x, y, visible, true); // the last true is for the hasAI boolean
}
protected void defineTasks() {
tasks.add(new PlayerControlTask(this, 5));
}
}