Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с наследованием (http://www.flasher.ru/forum/showthread.php?t=144283)

koler 08.09.2010 11:13

Проблема с наследованием
 
Доброе утро. Такая проблема
Создал 2 тестовых класса.
Класс А
Код AS3:

package {
        import flash.display.MovieClip;
        public class A extends MovieClip{
                public function A() {
                        var A_string:String='Hello World A';
                        trace(A_string);
                        A_function();
                }
                public function A_function():void {
                        trace('A_function');
                }
        }
}

И подкласс B, который,как я понял, должен расширять класс A и наследовать все его методы и функции
Код AS3:

package {
        import flash.display.MovieClip;
        public class B extends A{
                public function B() {
                        var B_string:String='Hello World B';
                }
                public function B_function():void {
                        trace('B_function');
                }
        }
}

Если я вставляю в класс A строку
Код AS3:

var BClass:B=new B();

, то,как я понял из поисков, возникает рекурсия, и появляется ошибка...
Но как правильно показать в классе A, что, допустим, по щелчку на кнопке, мне нужно, чтобы "подключился" подкласс B, а в подклассе B унаследовались все методы, переменные и т.д. класса A (мог трейсить A_string и вызвать A_function)?
P.S. Если сможет показать на примере кода выше, то буду очень признателен.

Psycho Tiger 08.09.2010 11:20

Смотря где строчку вставите. Если в конструктор - то да.

Создавая класс B Вы имеете в нём и методы B_function, и A_function.

koler 08.09.2010 11:44

Цитата:

Сообщение от Psycho Tiger (Сообщение 934276)
Смотря где строчку вставите. Если в конструктор - то да.

Создавая класс B Вы имеете в нём и методы B_function, и A_function.

А куда её? Я где только уже её не вставлял =))
Про методы я подозревал...

in4core 08.09.2010 12:54

Код AS3:

package {
        import flash.display.MovieClip;
        public class B extends A{
                public function B() {
                        var B_string:String='Hello World B';
A_function();  B_function();
                }
                public function B_function():void {
                        trace('B_function');
                }
        }
}


koler 08.09.2010 13:15

Цитата:

Сообщение от in4core (Сообщение 934299)
Код AS3:

package {
        import flash.display.MovieClip;
        public class B extends A{
                public function B() {
                        var B_string:String='Hello World B';
A_function();  B_function();
                }
                public function B_function():void {
                        trace('B_function');
                }
        }
}


ок, сенкс! С функцией вроде понятно. Работает.
Но как мне дать понять классу A, что я хочу подключить подкласс B в определенный момент?

i.o. 08.09.2010 14:11

никак


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

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