继承Java多态性如何在不同的类中调用相同的方法
所以我在用java做一个游戏,我有两个方法的对象update()
和render()
在游戏循环所在的主类中,我必须为每个可更新和可渲染的对象调用update()
和render()
方法
有没有办法建立某种形式的接口,我可以在其中调用一次方法,然后它将在所有实现的对象中调用它
你可以在下面搜索框中键入要查询的问题!
所以我在用java做一个游戏,我有两个方法的对象update()
和render()
在游戏循环所在的主类中,我必须为每个可更新和可渲染的对象调用update()
和render()
方法
有没有办法建立某种形式的接口,我可以在其中调用一次方法,然后它将在所有实现的对象中调用它
# 1 楼答案
也就是说,接口用于:
无论你在哪里
类A和B的对象是不同的,但它们实现相同的契约(接口)
# 2 楼答案
这是面向对象编程的支柱之一
基本上,您需要使用所需的方法定义一个接口。注意,在java中,默认情况下接口方法是公共的
然后定义实现。要实现接口,需要使用“implements”关键字。在下面的示例中,您将看到“implements Renderable”
最后,创建一个实例并通过接口调用方法
从这里,您可以填充一个列表,其类型为您的接口类型。您可以迭代该列表,从接口调用方法,调用实现
# 3 楼答案
接口的主要用途之一是实现多态性,或在多个不同对象上执行相同操作的能力。如果不同的对象都实现相同的接口并具有相同的方法,那么您可以将所有这些对象存储在一个向量/列表中,并在每个对象上迭代调用该方法的向量
根据您的要求:
现在将它们添加到列表中
它将调用已实现的函数,称为多态性
# 4 楼答案
其他答案是正确的,但是最好使用composite pattern:
然后实现特定的
GameComponent
,以便它们扩展ChildComponent
或ContainerCompoenent
:然后,在主循环中:
这样,您就可以创建一个由
GameComponent
组成的复合,然后您update()
和render()
就在最顶层ContainerComponent