2009-03-07 4 views
1

In ActionScript 3.0 möchte ich ClassA erweitern und InterfaceB implementieren. Das Problem tritt auf, wenn sowohl in ClassA als auch in Interface B eine 'data'-Eigenschaft vorhanden ist, die jedoch unterschiedlichen Typs ist. Ich schrieb,Actionscript-Klasse erweitert und implementiert Getter/Setter-Eigenschaft mit demselben Namen, aber anderen Typ

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 wird dies nicht kompilieren und fragt mich die Getter/Setter-Methoden außer Kraft zu setzen, wie sie in KlasseA definiert sind, aber die Eigenschaft data in KlasseA überschrieben ist nicht das, was ich will. Und selbst wenn ich beiden Methoden eine Überschreibung hinzufüge, beschwert sich der Compiler über eine inkompatible Überschreibung, weil die Dateneigenschaft in ClassA vom Typ String ist.

Antwort

1

Dies ist in ActionScript 3.0 nicht möglich. Das Beste, was Sie tun können, ist das Eingeben von Object oder einer Schnittstelle, die die verschiedenen Datentypen freigeben, und das Hinzufügen von Assertions in den Setter der abgeleiteten Klassen.

Verwandte Themen