オーバーライドされた基底クラスのメソッドの呼び出し方
プログラミングC# 第6版 4.5
メソッドを派生クラスでオーバーライドした時に、基底クラスのオーバーライドされたメソッドをどうやって呼び出すかという話。
using System; class CBase { public virtual void Foo () { Console.WriteLine("CBase.Foo"); } } class CClass : CBase { public override void Foo () { Console.WriteLine("CClass.Foo"); // baseという特殊な変数が定義されているのでそれを使う。 base.Foo(); } } class Program { static void Main () { CClass cobj1 = new CClass(); cobj1.Foo(); } }
$ main CClass.Foo CBase.Foo
baseという特殊な変数経由でFooを呼び出すだけです。
C++ではこういう場合「CBase::Foo()」のようにクラス名を付けて呼び出さないといけませんでしたが、C#ではbaseという変数に統一されているので便利ですね。