次のコードを検討してください。
// ======== Abstract class ========
public abstract class Creatures {
public abstract void loseEnergy();
public void execute()
{
loseEnergy();
}
}
// ======== Animals ========
public class Animals : Creatures
{
public override void loseEnergy(){}
}
public class Birds : Animals
{
public override void loseEnergy(){}
}
// ======== Human ========
public class Human : Creatures
{
public override void loseEnergy(){}
}
public class Male : Human
{
public override void loseEnergy(){}
}
public class Female : Human
{
public override void loseEnergy(){}
}
[ このコードは、ここで提案された Jayson のコードに基づいています: 「派生クラス メソッドを呼び出す基本クラス メソッド ?」]
与えられたコード例では、ランタイムに各派生クラス オブジェクトの特定のメソッド (この場合は「loseEnergy()」) を実行させたいのですが、解決策が見つかりませんでした。
どうすればこの問題にアプローチできますか? この問題を解決するために、知っておくことや試してみると役立つことは何ですか?
あなたの助けは大歓迎です!ありがとうございました!
よろしく、セガラ
PS私がこれまでに行ったいくつかの検索:
- 「すべての派生クラスでオーバーライドされたメソッドを呼び出す方法」
- 「ジェネリック基底クラスを持つ派生クラスのコレクション」
- 「基底クラスのオブジェクトを使って派生関数を呼び出す方法」
- 「リフレクションによる派生クラスのメソッド呼び出し可否」
編集:
「loseEnergy()」メソッドを持つクラスのオブジェクトを含むリストを作成するという以前の考えに固執することにしました。このようなリストがあれば、すべてのオブジェクトのメソッド「loseEnergy()」を呼び出すことができます。これは私が望んでいたことです。
質問はクローズできます。
ありがとうございました。