![]() |
переопределение метода родителя
Подскажите пожалуйста, возможноли как то при переопределении родителя вызвать метод родителя.родителя, что то типа super.super.metod() (знаю что запись не правильная). И если можно то как?
|
super и parent - это разные вещи
переопределение метода - это вообще не отсюда =) Когда переопределяется родитель - ваш объект встает в новое место в иерархии отображения. Соответственно, его parent меняется. Значит, мы можем обратиться к this.parent и вызвать его некий метод (или к this.parent.parent...parent... и так сколько нужно) Отследить переопределение родителя можно по событию Event.ADDED про super Вот есть у Вас класс, который наследуется от MovieClip Что это значит? Это значит, что объект Вашего класса будет обладать всеми свойствами и методами класса MovieClip И свойствами и методами, которые Вы описали в Вашем классе И когда пишем super.addChild(...) - это то же самое, что написать this.addChild(...) Вернее говоря, то же самое до тех пор, пока вы не переопределите метод addChild() в классе наследнике. Если вы его переопределите, то он может делать вообще что-нибудь другое, например удалять ребенка вместо его добавления на сцену. В таком случае - this.addChild() и super.addChild() будут делать разные вещи. Во всех остальных - то есть нет переопределения метода - это одно и то же и можно писать и так и так, как Вам удобнее |
Все это я знаю и так))) Спасибо за напоминание. Наверное я просто некорректно задал вопрос.
У меня есть класс А с методом metod(). У класса А есть наследник класс В с переопределенным metod(). Так же есть класс С который расширяет В. Так вот мне надо в классе С переопределить metod(), но при этом вызвать в начале super.metod(); класса А, а не класса В. Не спрашивайте зачем))) надо. Возможно ли так сделать. |
Напрямую его вызвать не удасться, но можно исхитриться, например поставив флаг на исполнение содержимого метода в классе B.
|
Просто сделать в классе В вот такой метод
Код AS3:
|
| Часовой пояс GMT +4, время: 06:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.