オーバーライドされた基底クラスメソッドを呼び出す
派生クラスで基底クラスメソッドをオーバーライドされた場合、処理は派生クラス側で上書きされてしまいますが、別に基底クラスメソッドが消えるわけではなくちゃんと呼び出すことが可能です。基底クラスのメソッドを呼ぶ場合はbaseキーワード(VB.NETはMyBase)を使用します。
public class BaseClass { public virtual void ShowMessage() { Console.WriteLine("基底クラス"); } } public class SubClass : BaseClass { public override void ShowMessage() { Console.WriteLine("派生クラス"); base.ShowMessage(); } }
Public Class BaseClass Public Overridable Sub ShowMessage() Console.WriteLine("基底クラス") End Sub End Class Public Class SubClass Inherits BaseClass Public Overrides Sub ShowMessage() Console.WriteLine("派生クラス") MyBase.ShowMessage() End Sub End Class
基底クラス 派生クラス 基底クラス