interface と implements
まだまだ知らないことがたくさんある。
Flash CS3 ヘルプ
インターフェイスを定義します。インターフェイスとは、メソッドのセットを定義するデータ型です。このメソッドは、インターフェイスを実装するすべてのクラスで定義される必要があります。
インターフェイスはクラスに似ていますが、次に示す重要な違いがあります。
・インターフェイスにはメソッドの宣言だけが含まれます。メソッド実装は含まれません。つまり、インターフェイスを実装するすべてのクラスは、インターフェイスで宣言されている各メソッドの実装を定義する必要があります。
・インターフェイスメソッドの定義では、public または private などの属性を指定できませんが、実装されたメソッドはインターフェイスを実装するクラスの定義で public と指定する必要があります。
・extends ステートメントまたは implements ステートメントを介したクラスを使用して、インターフェイスで複数のインターフェイスを継承することができます。
・ActionScript 2.0 とは異なり、ActionScript 3.0 ではインターフェイス定義で getter および setter メソッドを使用できます。
TestInterface.as
/* ActionScript3 */
package{
public interface TestInterface{
function func1():void;
}
}
Init.as
/* ActionScript3 */
package{
import flash.display.Sprite;
public class Init implements TestInterface{
public function Init(sp:Sprite){
}
public function func1():void{
trace("func1");
}
}
}
Init 内で func1を書かないと
「1044: インターフェイスメソッド func1 (名前空間 TestInterface) はクラス Init によって実装されません。」
というエラーが出る。