在Java中继承有问题

时间:2014-11-10 08:11:21

标签: java inheritance

如果我有类似以下的课程:

class Person {

}

class SmartPerson {

    public boolean isSmart() {

        return true;

    }

}

我可以执行以下操作吗?

Person smartPerson = new SmartPerson();
smartPerson.isSmart();

我正在尝试做这样的事情,但我的问题是Person类没有isSmart()方法。那么我将如何去做我想在这里完成的事情呢?

如果你想知道为什么我不只是在做

SmartPerson smartPerson = new SmartPerson();

这是因为我正在尝试使用Javafx创建游戏框架,稍后将扩展此框架以创建类似的游戏。所以我在框架中有一个Game类,游戏可能会有一个ShootingGame类,它将扩展Game类。

例如,在我的框架中的一个类中,我可能会有以下内容:

class SomeClassInFramework {
    Game game;
}

然后在游戏中:

class SomeClassInGame extends SomeClassInFramework {
    SomeClassInGame() {
        game = new ShootingGame();
    }
}

但是现在当我尝试访问game.SomeMethodInShootingClass()时,找不到它,因为Game类没有它。

任何帮助表示赞赏!感谢

1 个答案:

答案 0 :(得分:0)

您尝试使用引用类型调用的方法必须声明或对引用类型可见,请这样思考:Object如何知道您在类Foo中添加的方法类型?