Почему actionscript3.0 классифицирует сбой heirachy (иногда)?

Дайте ему относительный путь, как

 require('./app/models/permission') // add ./
6
задан ForYourOwnGood 18 February 2009 в 16:00
поделиться

2 ответа

Это вызвано тем, что

Методы Класса объекта динамично создаются на прототипе Объекта. Для переопределения этого метода в подклассе Объекта не используйте ключевое слово переопределения. Например, подкласс Объектных реализаций функционируют toString (): Строка вместо того, чтобы использовать переопределение базового класса.

Таким образом, при кастинге TestTwo к Объекту компилятор знает, что те методы будут реализованы. Если Вы не бросаете его, TestTwo не наследовал те методы и таким образом, они не были реализованы, и будет ошибка.

Это - что-то вроде странного!

4
ответ дан 17 December 2019 в 07:09
поделиться

Наследование классов и опытное наследование являются двумя разными вещами в AS3. Опытное наследование состоит в том насколько я понимаю включенный для назад совместимости с AS2/AS1, и это - опытное наследование, которое это обеспечивает toString() метод на переменной это брошено к Классу объекта в Вашем примере. Объектный прототип имеет toString() метод, не Класс объекта. Так как прототип не присутствует на Вашем классе TestTwo, он не имеет a toString() метод. Если toString() метод был предоставлен через наследование классов вместо этого, Ваш пример скомпилирует.

Так технически Ваш оператор "All Objects in actionscript3.0 inherit from the Object class" не совсем корректен из-за различия между опытным наследованием и наследованием классов. Опытное наследование является несколько тайным понятием OO, найденным на языках сценария.

Кто-либо знает причину, почему AS3 разработан как это?

0
ответ дан 17 December 2019 в 07:09
поделиться