Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Когда можно не вызывать super() ? (http://www.flasher.ru/forum/showthread.php?t=80854)

heilong 07.06.2006 14:45

Когда можно не вызывать super() ?
 
В каких случаях конструктор суперкласса можно не вызывать?
Например, я никогда не вызывал 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

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


Часовой пояс GMT +4, время: 09:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.