2009-03-07 5 views
1

ActionScript 3.0では、ClassAを拡張してInterfaceBを実装したいと考えています。この問題は、ClassAとInterface Bの両方に 'data'プロパティがあり、タイプが異なる場合に発生します。私は、Actionscriptクラスは、同じ名前で異なるタイプのゲッター/セッタープロパティを拡張して実装します

public class MyClass extends ClassA implements InterfaceB { 
    private var _data:Object; 

    public function get data():Object { 
     return _data; 
    } 

    public function set data(value:Object):void { 
     _data = data; 
    } 
} 

を書いたのFlex Builderは、これをコンパイルし、getter/setterメソッドをオーバーライドするために私を求めて彼らはにClassAで定義されているように、しかしにClassAでデータプロパティをオーバーライドすることは、私が欲しいものではありませんではないでしょう。そして、両方のメソッドにオーバーライドを追加しても、ClassAのデータプロパティがString型であるため、コンパイラは互換性のないオーバーライドを訴えます。

答えて

1

これはActionScript 3.0では不可能です。あなたが行うことができる最も良いことは、異なるデータ型が共有し、派生クラスのセッターにアサーションを追加するObjectまたはインターフェイスへの型入力です。

関連する問題