override 修飾子
更新 : 2007 年 11 月
メソッドまたはプロパティが、基本クラスのメソッドまたはプロパティをオーバーライドすることを宣言します。
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.