好的,所以我有一个很大的类结构,看起来像这样
它是为学校准备的,我的教练喜欢星际争霸,所以就随它去吧。
无论如何,我在GeneratorBuilding类中有一个方法,它应该能够实例化一个新的海洋对象。但是我需要知道一个Marine对象需要多少资源。
我在名为 unitCost()的抽象Unit类中有一个抽象 int 方法。然后Marine类覆盖这个方法并返回一个类似 50 的值。
我正在寻找一种方法让我的GeneratorBuilding类获取Marine类中 unitCost() 方法的返回值,而无需调用任何特定的 Marine 对象。
我知道我可能会创建一个海洋对象,然后询问它的成本是多少,然后如果我没有资源,我会删除该对象而不是将其推入 ArrayList。但这似乎几乎是一种解决方法。
编辑:重点是能够让我所有的具体类继承和覆盖 UnitCost() 方法。所以我可以让它成为静态的,但这会破坏继承结构的全部意义......
EDIT2:由于有示例代码的请求(不完全难以想象)
public void makeMarine(){
//uses resources and throws exception etc if there are not enough resources
Game.useResources(Marine.unitCost());
//creates a marine
Game.addMarine();
}