佐々木屋

技術的なことから趣味まで色々書きます

オーバーライドされた基底クラスメソッドを呼び出す

派生クラスで基底クラスメソッドをオーバーライドされた場合、処理は派生クラス側で上書きされてしまいますが、別に基底クラスメソッドが消えるわけではなくちゃんと呼び出すことが可能です。基底クラスのメソッドを呼ぶ場合は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
基底クラス
派生クラス
基底クラス