検索しましたが、問題の解決策を見つけることができませんでした。私のシナリオは非常に単純です。
public class A
{
public virtual void MethodOne()
{
Console.log( "A" );
}
}
public class B : A
{
public override void MethodOne()
{
base.MethodOne();
Console.log( "B" );
}
}
public class C : B
{
public override void MethodOne()
{
base.MethodOne();
Console.log( "C" );
}
}
私がやろうとしているのは、クラス C のインスタンス (「instanceC」と名付けます) に、その親のオーバーライドされたメソッドとその祖父母の両方を呼び出すことです。だから私はこれを期待します:
instanceC.MethodOne();
// Output:
// "A"
// "B"
// "C"
しかし、代わりにこれを取得しています:
instanceC.MethodOne();
// Output
// "A"
// "C"
クラス B のメソッドはスキップされます。これは不可能ですか?これが継承/ポリモーフィズムの要点だと思いました。前もって感謝します!