次の方法で共有


final 修飾子

更新 : 2007 年 11 月

拡張できないクラス、またはオーバーライドできないメソッドまたはプロパティを宣言します。

final statement

引数

  • statement
    必ず指定します。クラス、メソッド、またはプロパティの定義。

解説

final 修飾子は、拡張できないクラス、またはオーバーライドできないメソッドやプロパティであることを示すために使用します。これにより、重要な関数がほかの関数によってオーバーライドされることはなくなり、クラスの動作は維持されます。final 修飾子を指定したメソッドは、派生クラスのメソッドによって隠ぺいまたはオーバーロードされる場合があります。

final 修飾子は、クラスのメソッドとプロパティ、およびクラスに指定できます。インターフェイス、フィールド、およびインターフェイスのメンバには、final 修飾子を使用できません。

final 修飾子は、ほかの継承の修飾子 (abstract) と共に使用することはできません。既定では、クラスのメンバは abstractfinal のどちらでもありません。継承の修飾子は、static 修飾子と共に使用することはできません。

使用例

次のコードは、final 修飾子の使用例です。final 修飾子は、基本クラスのメソッドが派生クラスのメソッドによってオーバーライドされることを防ぎます。

class CBase {
   final function methodA() { print("Final methodA of CBase.") };
   function methodB() { print("Non-final methodB of CBase.") };
}

class CDerived extends CBase {
   function methodA() { print("methodA of CDerived.") };
   function methodB() { print("methodB of CDerived.") };
}

var baseInstance : CBase = new CDerived;
baseInstance.methodA();
baseInstance.methodB();

このプログラムの出力は、final メソッドがオーバーライドされていないことを示しています。

Final methodA of CBase.
methodB of CDerived.

必要条件

バージョン .NET

参照

概念

変数と定数のスコープ

型の注釈

参照

abstract 修飾子

hide 修飾子

override 修飾子

var ステートメント

function ステートメント

class ステートメント

その他の技術情報

修飾子