Класс Actionscript расширяет и реализует свойство getter / setter того же имени, но другого типа - PullRequest
1 голос
/ 07 марта 2009

В ActionScript 3.0 я хочу расширить ClassA и реализовать InterfaceB. Проблема возникает, когда в ClassA и в интерфейсе 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 не будет компилировать это и просит меня переопределить методы getter / setter, как они определены в ClassA, но переопределение свойства данных в ClassA - не то, что мне нужно. И даже если я добавлю переопределение к обоим методам, компилятор пожалуется на несовместимое переопределение, поскольку свойство данных в ClassA имеет тип String.

1 Ответ

1 голос
/ 07 марта 2009

Это невозможно в ActionScript 3.0. Лучшее, что вы можете сделать, - это ввести Object или интерфейс, которым совместно пользуются разные типы данных, и добавить утверждения в установщики производных классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...