【发布时间】:2011-04-23 20:37:43
【问题描述】:
我来自网络开发背景。我最近一直在玩一些 Java,并且遇到了以下问题,这似乎源于严格的接口和数据类型,它们是 Java 的一部分,而不是 PHP 的一部分。
我正在使用现有的物理引擎 (Phys2D) 来开发各种游戏。这个物理引擎具有由World 管理的Body 对象,并且随着世界的步进,它们会施加各种力。对游戏中的 AI 来说,身体有颜色是很重要的(这样可以感知它们),但是物理引擎不支持,所以我创建了一个子类,并将 Body 类扩展为包括这-http://pastebin.com/1nLYWg3w。现在,当我创建这些 Body 实例时,我可以从 World 取回它们并获取它们的颜色。
但是,Netbeans 是这么说的
cannot find symbol
symbol: method getColour()
location: class net.phys2d.raw.Body
因为物理引擎接口返回的Body 对象不包含此方法。我知道,在运行时,所有传递给World 的Body 对象实际上将是ColouredBody 类型的对象,因此将在其接口中定义此方法。
如何将颜色附加到Body 对象而不产生可怕的下划线和警告?我知道我可以更改 Phys2D 本身,但是,除了潜在的许可限制(许可说明您可以使用 Phys2D 进行此操作),我被告知这是不好的做法。
【问题讨论】:
-
我链接到 pastebin 以避免混淆问题。请告知这在帖子本身是否更合适。另外,如果有什么方法可以让帖子对其他人更通用,请编辑或请求进行必要的更改。
标签: java design-patterns inheritance interface