クラス継承の仕方
派生クラスを宣言するには
クラス宣言でキーワードclassの後にカッコを付けて、基底クラスを書きます。
| TMyClass | = class(TMyBase) | // TMyBaseクラスから派生させる |
| .......... | ||
| end; |
仮想メソッドを使用するには
virtualキーワードを使用して宣言します。仮想メソッドは、派生クラスでオーバーライドできます。オーバーライドするときは、メソッド宣言でキーワードoverrideを使用します。
| TMyBase | = class | |
| procedure VirProc; virtual; | // 仮想メソッドの宣言 | |
| ..... | ||
| end; | ||
| TMyClass | = class(TMyBase) | |
| procedure VirProc; override; | // 仮想メソッドをオーバーライド | |
| ..... | ||
| end; |
基底クラスのコンストラクタを呼び出すには
派生クラスのコンストラクタで、基底クラスのコンストラクタを呼び出して、基底クラスを初期化させるには、inheritedキーワードを付けて基底クラスのコンストラクタを呼び出します。
| TMyBase | = class | |
| constructor CreateBase; | ||
| .... | ||
| end; | ||
| TMyClass | =class(TMyBase) | |
| constructor Create; | ||
| ...... | ||
| end; | ||
| implementation | ||
| constructor TMyClass.Create; | ||
| inheried CreateBase; | // 基底クラスのコンストラクタを呼び出す。 | |
| .... | ||
| end; | ||