2012-03-19 24 views
1

我是新来的Java,但不是编程。 我正在读的书“开始Android游戏”,并有abstract class得到实例化here(第10行) ,我不明白你怎么能实例化一个抽象类?了解继承java中的抽象方法

该类是抽象的,因为它从类Game(实现Game)继承抽象方法。

+0

不,该行#10不会“实例化”任何东西。这只是一个声明。变量'game'得到它的引用,可能是通过构造函数完全实现抽象类的类的实例。 – 2012-03-19 18:16:54

+0

我没有制作Android游戏,但我可以告诉你:没有抽象类在第10行实例化,这只是一个参考。 Android(?)可能会为您提供一个在构造函数中扩展它的类。 – Andreas 2012-03-19 18:18:22

回答

1

它没有得到实例化。你来自C++吗?如果是这样,你必须记住,该语法声明了一个引用,它没有问题是一个抽象类型?

2

AndroidGame没有在第10行或类的任何其他行中得到实例化,它只是声明为成员。

它必须是传递给类的构造函数,第16行,因此这是发生了什么:

AndroidGame具有类的外部被初始化,然后传递到FastRenderView使当前可通过画面访问(第44行)。

为了能够在其他地方实例化,必须从AndroidGame派生并覆盖它的抽象方法。

0

不,那条线#10没有instantiate什么。这只是一个声明。变量game得到它的引用,可能是通过构造函数完全实现抽象类的类的实例 - AndroidFastRenderView

0

还有就是在这里被实例化的抽象类(10号线):

AndroidGame game; 

假的!这里没有任何东西正在实例化。您正在声明对类型AndroidGame的引用,这非常好。 (狮子狗是一种动物,即使动物是抽象类型)。 下面的实例必须是AndroidGame的具体子类。

实例化使用new运算符发生。

0

没有被实例化在第10行;宣布提及AndroidGame

一个AndroidGame参考可以指任何延伸AndroidGame