基本上,我問的是如何正確地做到這一點,基於我想我想要的。重寫一個虛擬的抽象函數?
我有一個武器類,它是抽象的,因爲它包含像Fire()這樣的通用(激光VS子彈)方法,它們如何觸發它們需要繼承器實現。
然而,一旦我得到一個從武器類繼承的實際彈道武器類。
那麼大部分的火都是一樣的。他們產生彈丸並降低彈藥計數,並等待重新加載計時器降至0,然後再次發射火焰。
無論是坦克炮還是手槍,炮塔或大炮,它都會保持不變而不是變化。
這似乎是一個虛擬類(一個魚雷發射可能需要一個特殊的實施,提升和降低艙門射擊所以它不能被非虛擬/抽象的,它需要修改)
但基本上我想有
抽象武器類火()方法
虛擬彈道武器繼承武器開火()方法
但它似乎沒有,你可以覆蓋一個抽象的方法,使之形成虛擬的。
我不認爲我需要一個全新的方法,但因爲我希望能夠做到
weapon.fire
,並進入ballstic武器和使用實施那裏,除非具體的彈道武器已經超越了這種一般方法。
郵政相關的代碼,不描述它。 – 2013-04-30 03:12:27
@EvanTrimboli本週我見過的最佳評論。 – 2013-04-30 03:13:50
我想你是誤解了一些東西。抽象方法是一種虛擬方法。重寫方法是一種虛擬方法。當你重寫一個抽象方法時,它仍然是虛擬的。它怎麼會不是? – 2013-04-30 05:50:01