我知道它不支持,不像php。让我起草我的系统。
它是一个2D滚动游戏,具有对象(云,星,鸟),具有通用的“BaseItem”类。与他们碰撞可能会发生不同的事情,获得更多的生命,失去生命...等等。一个抽象的方法,BaseItem.eventOnCollation()只会返回一个数组来描述改变了什么(获得生命,失去生命,获得奖金)等)。
到目前为止一直很好,但还有另一个“CloudB”与“Cloud”效果相同。完全复制eventOnCollation()方法?代码重复。安装“云”并调用其eventOnLocation()?更好,但实例化会加载更多不必要的东西。我只是想知道对整理有什么影响。
当我说让我们使用静态时 - 它甚至不需要让对象的实例知道它的效果 - 可以有100颗具有相同效果的星星。 对象位于Vector中。这是我迭代所有对象,并调用eventOnCollation() - 异常!
我希望一切都清楚
答案 0 :(得分:2)
您不应该对您提到的行为使用静态方法。
你可能想要做的是让CloudB
扩展Cloud
:
public class CloudB extends Cloud { ... }
然后你可以使用所有好的东西,比如覆盖方法,抽象方法等......在没有代码重复的情况下对类似的类有不同的行为。
答案 1 :(得分:1)
您可以使CloudB扩展云并覆盖除eventOnLocation()
之外的所有方法。
这里没有static
。