1

基本的に、私が欲しいと思うものに基づいて、これを適切に行う最善の方法を尋ねています。

継承者の実装が必要な発火方法が非常に一般的な Fire() のようなメソッドが含まれているため、抽象的な武器クラスがあります。

ただし、武器クラスから継承する実際の弾道武器クラスに到達すると。

それらのほとんどは同じように発砲します。彼らは発射体をスポーンし、弾薬数を減らし、リロード タイマーが 0 になるのを待ってから、再び発砲できるようにします。

戦車砲であれ、ピストルであれ、砲塔であれ、大砲であれ、変化するよりも同じままです。

それは仮想クラスのようです (魚雷発射管は、発射するためにハッチドアを上げ下げするために特別な実装が必要になる場合があるため、非仮想/抽象化することはできず、変更可能である必要があります)

しかし、基本的に私は持っていたい

抽象武器クラスの Fire() メソッド

仮想弾道兵器は武器の Fire() メソッドを継承します

しかし、抽象メソッドをオーバーライドして仮想メソッドにすることはできないようです。

できるようになりたいので、まったく新しい方法が必要だとは思いませんが

武器.火

特定の弾道兵器がその一般的な方法をオーバーライドしていない限り、それは弾道兵器に入り、そこで実装を使用します。

4

2 に答える 2

1

抽象は子クラスでオーバーライドする必要があることを意味し、仮想はオーバーライドできることを意味します。抽象クラスに仮想メソッドを含めることができます。次のような契約の形式でバインドすることにより、インターフェイスを使用して問題を解決できます。

Ifireable 
于 2013-04-30T03:17:15.493 に答える