次の方法で共有


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.

必要条件

バージョン .NET

参照

概念

変数と定数のスコープ

型の注釈

参照

hide 修飾子

var ステートメント

function ステートメント

class ステートメント

その他の技術情報

修飾子