我是Java的新手,但不是编程。 我正在阅读“开始Android游戏”这本书,并且有一个abstract class可以实例化here(第10行) 我无法理解你如何实例化一个抽象类?。
该类是抽象的,因为它从类Game(实现Game)继承了一个抽象方法。
答案 0 :(得分:2)
AndroidGame
没有在第10行或类的任何其他行中实例化,它只是被声明为成员。
必须将它传递给类的构造函数,第16行,因此会发生这种情况:
AndroidGame
必须在课堂外初始化,然后传递给FastRenderView
以使当前屏幕可供绘图(第44行)。
为了能够在其他地方实例化,必须从AndroidGame
派生并覆盖它的抽象方法。
答案 1 :(得分:1)
它没有实例化。你来自C ++吗?如果是这样,你必须记住那个语法声明了一个引用,它没有抽象类型的问题吗?
答案 2 :(得分:0)
不,第10行没有instantiate
任何东西。这只是一个宣言。变量game
得到它的引用,可能是通过构造函数 - AndroidFastRenderView
完全实现抽象类的类的实例。
答案 3 :(得分:0)
有一个抽象类在这里实例化(第10行):
AndroidGame game;
错!此处没有任何实例化。您正在声明对类型 AndroidGame
的引用,这非常好。 (狮子狗是一种动物,即使动物是抽象类型)。 底层实例必须是AndroidGame
的具体子类。
使用new
运算符进行实例化。
答案 4 :(得分:0)
第10行没有实例化;声明对AndroidGame
的引用。
AndroidGame
引用可以引用任何扩展AndroidGame
的内容。