【发布时间】:2020-02-25 13:05:24
【问题描述】:
我的 JavaFX 游戏中有一个继承层次结构建模实体。我的游戏中有 4 种敌人类型,但是它们只需要 Entity(抽象类)中方法的默认实现 + 1 个额外的方法,其中每个敌人将提供不同的实现。以后也不会再有敌人了。所以从这个背景来看,我认为 Enemy 应该是一个界面。
所以我的问题是,我假设 Enemy 应该是抽象类的接口是否正确?
这是我的类图(目前以敌人为抽象类):
【问题讨论】:
-
如果 Enemy 是一个接口,它不能再扩展 Entity,因为它是一个抽象类。
-
@Héctor Enemy 不会扩展实体,而是单个 Enemy 类型会
-
在这种情况下,你的敌人可能不是实体。
-
在这种情况下,无论你在哪里需要一个 Enemy,你都不能使用实体方法,只能使用 Enemy 方法。
-
@Héctor No. 每个 Enemy 类型都将从 Entity 扩展,但实现 Enemy 接口
标签: java oop inheritance