【发布时间】:2013-09-14 17:02:53
【问题描述】:
我了解到 Java 不允许在接口中使用实例字段,但我真的很想要这个功能。
我正在学习创建我的第一个游戏。我的游戏有不同类型的演员,例如Hero(由玩家控制)、Boss、Canon 等...
无论它们是哪一种,我希望每个演员都从基类Model 继承,该基类将一些字段赋予其子类,例如position、width 和height,以便@987654328 的每个子类@ 可以与 Controller 和 Renderer 关联,就像在 MVC 模式中一样。
public class Model {
//position
public float x;
public float y;
public float width;
public float height;
}
顺便说一句,我打算 Hero 和 Boss 是可以死亡的实体,所以我希望它们是 Life 的实例,例如,public float hitPoint; 作为一个字段,相比之下,Cannon 不是Life,因为它将是一个不朽的实体。因此我尝试了:
public interface Life {
public float hitPoint;
}
并期望一个实例
public class Hero extends Model implements Life {...}
本质上将具有hitPoint。但是后来我了解到,接口中的实例字段在 Java 中是不允许的,它也不支持多重继承。
有没有可能用Java实现上述设计。
【问题讨论】:
-
我相信你需要的是抽象类而不是接口。
标签: java interface multiple-inheritance