hide 修飾子
更新 : 2007 年 11 月
メソッドまたはプロパティが、基本クラスのメソッドまたはプロパティを隠ぺいすることを宣言します。
hide statement
引数
- statement
必ず指定します。メソッドまたはプロパティの定義。
解説
hide 修飾子は、基本クラスのメソッドを隠ぺいするメソッドに対して使用します。基本クラスに同じシグネチャのメンバがない場合、メソッドに hide 修飾子は使用できません。
hide 修飾子は、クラスのメソッドとプロパティに指定できます。クラス、フィールド、インターフェイス、およびインターフェイスのメンバには、hide 修飾子を使用できません。
hide 修飾子は、ほかのバージョン セーフ修飾子 (override) と共に使用することはできません。バージョン セーフ修飾子は、static 修飾子と共に使用することはできません。既定では、基本クラスのメソッドに final 修飾子がない場合、メソッドは基本クラスのメソッドをオーバーライドします。abstract を指定した基本メソッドに明示的な実装を与えていない場合は、abstract メソッドを隠ぺいできません。バージョン セーフ モードで実行されている場合は、基本クラスのメソッドをオーバーライドするときに、バージョン セーフ修飾子のいずれかを使用する必要があります。
使用例
次のコードは、hide 修飾子の使用例です。hide 修飾子を指定された派生クラスのメソッドは、基本クラスのメソッドをオーバーライドしません。override 修飾子を指定されたメソッドは、基本クラスのメソッドをオーバーライドします。
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();
このプログラムの出力は、隠ぺいされたメソッドは基本クラスのメソッドをオーバーライドしないことを示します。
Hiding methodA.
Overriding methodB.
methodA of CBase.
Overriding methodB.