Actionscript类扩展并实现同名但不同类型的getter / setter属性

时间:2009-03-07 15:02:24

标签: actionscript-3

在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类型。

1 个答案:

答案 0 :(得分:1)

在ActionScript 3.0中无法实现。您可以做的最好的事情是键入Object或不同数据类型共享的接口,并在派生类的setter中添加断言。