PDA

Просмотр полной версии : Когда можно не вызывать super() ?


heilong
07.06.2006, 14:45
В каких случаях конструктор суперкласса можно не вызывать?
Например, я никогда не вызывал super() у классов, которые extends MovieClip, вроде как у MovieClip-а конструктора и нету (?). Но, использовав Sothink SWF Decompiler на своём же swf-е, я увидел, что он во все мои классы, в т.ч. и extends MovieClip, в конструктор написал super(). Может быть, это всё-таки нужно делать? Также вопрос, если super(...) не вызвать вообще, будет ли он вызван автоматически (как в Delphi, например, если правильно помню)?

7thsky™
07.06.2006, 14:51
если не указал явно компилятор добавляет сам, насколько помню в конец

heilong
07.06.2006, 14:58
точно добавляет? в доке плохо не написано

Nirth
07.06.2006, 15:29
Как показывает практика добавляет в начало.
пишем класс Base

class Base {
public function Base()
{
trace("base");
}
}

потом пишем класс Sub

class Sub extends Base{
public function Sub()
{
trace("sub");
}
}

ну и вызываем

new Sub();//outputs base
// sub

heilong
07.06.2006, 15:34
О, круто. Мог бы и сам до такого кода допереть ).