java - 访问超类和对象的接口

时间:2015-02-07 11:38:00

标签: java inheritance interface polymorphism superclass

我正在写一个简单的游戏,你可以选择不同种类的动物。 AnimalsEntity()的子类,它是GameObject()的子类。我还为您可以扮演的动物创建了一个界面IPlayableAnimal。因此,当创建Player对象时,您需要将其传递给IPlayableAnimal。现在这个工作正常,但我也想访问Entity特定的方法,但是由于PlayableAnimal被传递,我只能使用IPlayableAnimal形式的方法(当然会被它的子类覆盖)。

有没有办法访问Entity方法?或者我是否必须使用Entity接口的抽象方法创建IPlayableAnimal的子类,或者将IPlayableAnimalEntity对象传递给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));
  }

}

0 个答案:

没有答案