超类来查看子类方法

时间:2015-06-20 23:05:19

标签: java inheritance

我有一个

class Game {}

class Game1 extends Game{}

class Game2 extends Game1{ 
  void method1(){};
}

但是当我这样做时,

Game game = new Game2 (); //compiles fine and all is ok
game.method1(); //gives me error method1 is not defined for type Game

我该如何解决这个问题?游戏是超级超级..

1 个答案:

答案 0 :(得分:1)

如果需要在子类上调用方法来转换为超类的变量,那么需要将其强制转换为子类。另一方面,如果Game对象需要知道Game2对象上的方法,也许您应该使用Game2和Game1必须实现的抽象方法将Game声明为抽象类:

public abstract class Game {
    public abstract void method1();
}

public class Game1 extends Game {
    public void method1() {
        // ...
    }
}

public class Game2 extends Game {
    public void method1() {
        // ...
    }
}