override 修飾子
メソッドまたはプロパティが、基本クラスのメソッドまたはプロパティをオーバーライドすることを宣言します。
override statement
引数
- statement
必ず指定します。 メソッドまたはプロパティの定義。
解説
override 修飾子は、基本クラスのメソッドをオーバーライドするメソッドに対して使用します。 基本クラスに同じシグネチャのメンバーがない場合、override 修飾子は使用できません。
override 修飾子は、クラスのメソッドとプロパティに指定できます。 クラス、フィールド、インターフェイス、およびインターフェイスのメンバーには、override 修飾子を使用できません。
override 修飾子は、ほかのバージョン セーフ修飾子 (hide) と共に使用することはできません。 バージョン セーフ修飾子は、static 修飾子と共に使用することはできません。 既定では、基本クラスのメソッドに final 修飾子がない場合、メソッドは基本クラスのメソッドをオーバーライドします。 final メソッドはオーバーライドできません。 バージョン セーフ モードで実行されている場合は、基本クラスのメソッドをオーバーライドするときに、バージョン セーフ修飾子のいずれかを使用する必要があります。
使用例
次のコードは、override 修飾子の使用例です。 override 修飾子を指定された派生クラスのメソッドは、基本クラスのメソッドをオーバーライドします。 hide 修飾子を指定されたメソッドは、基本クラスのメソッドをオーバーライドしません。
class CBase {
function methodA() { print("methodA of CBase.") };
function methodB() { print("methodB of CBase.") };
}
class CDerived extends CBase {
hide function methodA() { print("Hiding methodA.") };
override function methodB() { print("Overriding methodB.") };
}
var derivedInstance : CDerived = new CDerived;
derivedInstance.methodA();
derivedInstance.methodB();
var baseInstance : CBase = derivedInstance;
baseInstance.methodA();
baseInstance.methodB();
このプログラムの出力は、override メソッドが基本クラスのメソッドをオーバーライドすることを示しています。
Hiding methodA.
Overriding methodB.
methodA of CBase.
Overriding methodB.