在ActionScript 3.0中,我想扩展ClassA并实现InterfaceB。问题出现在ClassA和Interface B中都有“data”属性,但属性不同。我写道,
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不会编译它并要求我覆盖在ClassA中定义的getter / setter方法,但是在ClassA中覆盖data属性并不是我想要的。即使我向这两个方法添加了覆盖,编译器也会抱怨不兼容的覆盖,因为ClassA中的data属性是String类型。
答案 0 :(得分:1)
在ActionScript 3.0中无法实现。您可以做的最好的事情是键入Object或不同数据类型共享的接口,并在派生类的setter中添加断言。