Просмотр полной версии : Странности наследования в as3
caseyryan
20.03.2013, 12:16
Никогда не задумывался над этим вопросом, но вот сегодня заметил такую странность, когда у класса нет явного суперкласса, он по идее, неявно наследуется от Object. IS-A тест на принадлежность к Object проходит нормально. Но! При этом нельзя использовать переопределение методов класса Object. В частности, если написать
override public function toString():String {
return "bla-bla";
}
Компилятор будет ругаться на недопустимое переопределение. Так что пишу просто
public function toString():String {
return "bla-bla";
}
и все работает.
Вопрос, почему так? Кто-нибудь в курсе с чем связано такое поведение?
Методы класса Object динамически создаются в прототипе Object. Чтобы переопределить этот метод в подклассе Object, не используйте ключевое слово override. Например, в подклассе Object вместо переопределения базового класса применяется function toString():String.
.....
caseyryan
20.03.2013, 12:25
Понятно. Спасибо. Странно, что сам этого не нагуглил.
Zebestov
21.03.2013, 21:17
Меня больше раздражает метод init, который всегда подсвечивается как переопределенный, хотя его нигде нет.
gloomyBrain
21.03.2013, 21:30
всегда подсвечивается как переопределенный, хотя его нигде нет
Думаю, что пора тебе поставить нормальный редактор =)
Zebestov
21.03.2013, 21:50
Чем уже FB плох )
caseyryan
21.03.2013, 22:35
Вадим, пиши initialize() ;)
Zebestov
21.03.2013, 22:51
Вот так просто сдаться? Аж бегом!
А у меня не подсвечивает.
Zebestov
22.03.2013, 23:20
public function init():void {}
Слева появляется зеленая стрелочка.
Вроде жмак по ней приведет к оригинальному методу.
Zebestov
22.03.2013, 23:35
Source could not be found for Object.init in ...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.