オーバーライド

オーバーライドとは、スーパークラス(※1)から継承されたメンバ関数をサブクラス(※2)で上書きする機能のことをいいます。

※1 スーパークラス … 継承元クラスのこと。
※2 サブクラス … 継承先クラスのこと。

オーバーライドの方法

スーパークラスで定義済みのメンバ関数を、サブクラスで再定義します。再定義を行うにあたって、メンバ関数名、パラメータ、戻り値は同一のものを採用する必要があります。下の例では、メンバ関数ShowMessageをオーバーライドしています。

Class CSuperClass Public Sub ShowMessage() MessageBox(0,"スーパークラスで定義されたメンバ関数です。","オーバーライドのテスト",MB_OK) End Sub End Class Class CTest Inherits CSuperClass Public Sub ShowMessage() MessageBox(0,"サブクラスで定義されたメンバ関数です。","オーバーライドのテスト",MB_OK) End Sub Sub ShowOldMessage() Super.ShowMessage() End Sub End Class 'オブジェクトを生成 Dim obj As CTest 'オーバーライドされたメンバ関数を呼び出す obj->ShowMessage() 'スーパークラスのメンバ関数を呼び出す obj->ShowOldMessage()


スーパークラスのメンバ関数を呼び出すには

オーバーライドされる前のスーパークラスのメンバ関数は、関数名の前に "Super." と記述をすることで呼び出すことができます(上記プログラムのメンバ関数ShowOldMessageを参照)。"Super." の記述が有効なのはクラス内のみであり、外部からスーパークラスのメンバ関数を直接的に呼び出すことはできません。