から継承するクラスweapon
、projectile
クラス、およびクラス があり、クラスはから継承し、クラスには武器の発射体を取得および設定する発射体プロパティがあります。ballistic weapon
weapon
ballistic projectile
projectile
weapon
弾道兵器はこれを継承しますが、弾道兵器には弾道発射体を持つ武器だけはありません(即時の影響であるため発射速度を持たないレーザー発射体とは異なります)
したがって、武器のプロパティをオーバーライドすることを選択すると、セッターが問題を引き起こす可能性があります。
public Projectile weaponprojectile
{
// getter/setter
}
一般的な発射物だけを取ります。ゲッターのオーバーライドは問題なく機能します。これは、balltic 発射体を返すと基本の発射体が返されるためです。しかし、セッターは絶対に大丈夫ではありません。弾道発射体として設定できる発射体だけではありません。
したがって、オーバーライドを使用する場合、弾道および静的変換のタイプを確認するのは正しい方法ですか、それとも何か他のことを試す必要がありますか?
オーバーライドを使用せずに新しいセッターを作成すると、2 つのほぼ同じ特性を持つこの武器になってしまうのではないかと心配しています。
その発射体と、基本的には発射体に加えて他のものであるその弾道発射体であり、実際に弾道発射体を取得することは無意味です。
私は継承の使用に慣れていないので、ジェネリック変数を持つ抽象クラスがあり、そのクラスと変数を継承し、より具体的なタイプの変数を持っている場合、基本的に何をするかについて誰かが私にガイダンスを与えることができれば.