Java';谷歌缺乏多重继承,这会损害其Android游戏开发的潜力吗?
我目前参加了一个移动应用程序开发课程,我有一个关于虚拟宠物的游戏的想法。我相信我能够毫无问题地利用Java的功能来实现这个类,但是如果我想,比如说,融合宠物和/或繁殖,我想用Java实现我的想法可能会很困难 我知道对象可以从多个接口继承,也有通过其他方式获取变量的方法,但就代码和应用程序效率而言,我是否最好使用另一种语言 我真的很期待这次讨论,因为我喜欢听各方的利弊。Java是我目前最喜欢的语言,因为我最熟悉它,但即使如此。。。如果我这样做更好的话,我很想扩展业务。我已经用搜索引擎查找过很多次了,但我认为这将是一种更实际的方法来与人们进行对话,而不是简单地阅读过去的文章Java';谷歌缺乏多重继承,这会损害其Android游戏开发的潜力吗?,java,android,performance,Java,Android,Performance,我目前参加了一个移动应用程序开发课程,我有一个关于虚拟宠物的游戏的想法。我相信我能够毫无问题地利用Java的功能来实现这个类,但是如果我想,比如说,融合宠物和/或繁殖,我想用Java实现我的想法可能会很困难 我知道对象可以从多个接口继承,也有通过其他方式获取变量的方法,但就代码和应用程序效率而言,我是否最好使用另一种语言 我真的很期待这次讨论,因为我喜欢听各方的利弊。Java是我目前最喜欢的语言,因为我最熟悉它,但即使如此。。。如果我这样做更好的话,我很想扩展业务。我已经用搜索引擎查找过很多次了
提前谢谢 多重继承不适用于您的用例,因为它是编译时的事情,我认为您引用的是基于运行时值的子类;我认为组合和装饰模式会更好地为您服务。您将遇到比缺少多重继承更复杂的问题。当然,多重继承是有用的,但到目前为止,我只有很少的情况下它会有用(考虑到我使用的是Java)。相反,您可以使用接口并实现多个。不一样,但与学位相似 <>我真正指出的是,在选择C++和java之间会有更多的后果。以下是我想到的几个问题:
-
对于LC++,你必须使用NDK,这导致使用Eclipse(我认为Android工作室与NDK现在是beta版),在那里java必须使用常规的SDK,即Eclipse或Android Studio(后者更好)。
- 在C++中,你必须自己分配和释放对象,在java中你有一个垃圾回收器。两者都可以工作,但是如果你是初学者,你可以很容易地陷入C++的内存泄漏。
- 使用Java,您将拥有一个垃圾收集器,如果您正在分配大型对象,它可能会暂停很多毫秒。当它运行时,您无法控制它。这会偶尔导致帧率下降。开发人员使用的一种解决方法是保留对所有对象的引用,因此没有GC。但这也需要大量的内存 如果你想要一个更高要求的游戏(例如3D),那么你就必须使用C++。当然,Java可以在3D中绘制精美的库,但性能总是很糟糕。用C++你可以使用OpenGL,它允许你直接与GPU通信,使所有的事情都快几十倍。但它也像一种新的编程语言,需要一种不同的思维方式