游戏中的Java Abstract VS Interface?我应该使用哪个?

时间:2018-10-21 13:55:18

标签: java interface abstract-class

当我想创建多个NPC和物品时,当我希望它们执行某些相同的操作时,哪一个更好呢?假设所有NPC都将移动(),checkCollide(),而有些物品具有自己的独特行为,例如trade() ,questGiving()? 我目前正在使用抽象,因为我不太熟悉接口的工作方式以及为什么它们比抽象类更优越

2 个答案:

答案 0 :(得分:0)

在许多情况下,接口都更好,因为一个类只能扩展一个(但不能超过一个)类,但是您可以根据需要实现任意数量的接口。扩展抽象类时,您已经具有继承,这将使您的类不太灵活。

答案 1 :(得分:0)

与Donat的回答相辅相成,接口还使您的类彼此之间更解耦,这通常意味着您的代码将更易于扩展。例如,如果您以后要添加新的NPC类型,则可以根据接口合同递增新类,甚至创建新接口。您甚至可以开始考虑使用设计模式,例如Decorator设计模式。