基本上我在问如何最好地根据我的想法正确地做到这一点。
我有一个抽象的武器类,因为它包含诸如 Fire() 之类的方法,这些方法在它们如何射击方面非常通用(激光与子弹),它们需要继承者实现。
但是,一旦我得到一个继承自武器类的实际弹道武器类。
好吧,大多数人都一样。他们产生弹丸并降低弹药数量并等待重新加载计时器降到0,然后再次允许射击。
无论是坦克炮、手枪、炮塔还是大炮,它都将保持不变而不是改变。
这似乎是一个虚拟类(鱼雷发射器可能需要一个特殊的实现来提升和降低舱门以发射,因此它不能是非虚拟/抽象的,它需要是可修改的)
但是基本上我想拥有
抽象武器类 Fire() 方法
虚拟弹道武器继承武器Fire()方法
但是您似乎无法覆盖抽象方法并使其成为虚拟方法。
我不认为我想要一个全新的方法,因为我希望能够做到
武器.火
它进入弹道武器并在那里使用实现,除非特定的弹道武器覆盖了该通用方法。