我有一个
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
我该如何解决这个问题?游戏是超级超级..
答案 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() {
// ...
}
}