Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 29.02.2012, 18:37
sonofatrus вне форума Посмотреть профиль Отправить личное сообщение для sonofatrus Найти все сообщения от sonofatrus
  № 51  
sonofatrus
 
Аватар для sonofatrus

Регистрация: Feb 2012
Адрес: Crimea
Сообщений: 31
super нужен для вызова метода в родителе, который переопределяется в наследнике. Иными словами BaseEnemy.hurt()->AngryEnemy.hurt()->EvilEnemy.hurt(). В классе BseEnemy hurt пустой (чуть позже почему он там нужен). AngryEnemy имеет свой метод hurt который например запускает анимацию челюстей. А EvilEnemy, наследник AngryEnemy должен челюстями щелкать и лапами хватать. Вот когда надо super.hurt() вызывать в методе AngryEnemy.hurt(). Иначе только лапами хватать будет. А насчет зачем в BaseEnemy пустой hurt() - всех врагов загоняем в один типизированый массив и можем вызвать hurt(), изз-за полиморфизма вызовется hurt непосредственно экземпляра того класса который есть.
Про this уже в начале написали. Лично я пишу только возврата экземпляра класса, когда надо наприемр сделать цепочку вызовов.
__________________
Flash + iOS + Gamedev = FIG developer
Я здесь пишу, чего же боле?

Старый 29.02.2012, 18:42
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 52  
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от Bgg Посмотреть сообщение
Для контейнера создайте интерфейс и никто ваш нерабочий addChild не вызовет.:
Если метод принимает в качестве параметра экземпляр класса DisplayObject, то он должен принимать всех наследников DisplayObject, а не только Baloon. Заводите в заблуждение разработчиков, внутрь ваших публичных методов никто не обязан смотреть.
Это лишь пример, не надо зацикливаться на том что я написал: почему я повесил исключение на случай неправильного параметра, почему именно шарики а не голые бабы, почему я не использовал интерфейс... Смотреть надо глубже: я использовал наследование. В подклассе переопределил какой-то метод, не важно какой. Почему переопределил - некая необходимость. Почему не использовал интерфейс - его ненужность в определенном случае. Почему в одном из методов я использовал супер - потому что нужно вызвать оригинальный метод, а не переопределенный.
Ладно, я вижу одни используют супер, другие - нет. Ну что же - официально признаю что я не могу привести пример, где без super нельзя обойтись. Но когда мне на практике такая ситуация встретится - я по-глупому, по-нубски напишу "super" там где он понадобится, а противники пусть лепят костыли и ломают голову как без этого ненавистного антирелигиозного "super" обойтись.
Умываю руки. Всем спасибо за внимание и терпение
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 29.02.2012 в 18:47.
Старый 29.02.2012, 18:44
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 53  
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
В этом году superсрача еще не было.
Димарик как бы намекает, что эта тема не в единственном экземпляре чудесно ищется через поиск. И ничего нового тут, по сравнению с теми разами, не сказано.
__________________
тут я

Старый 29.02.2012, 19:53
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 54  
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
HardCoder, сделали, чтоб нельзя было добавлять не Baloon - не добавляет. Был бы super - добавляло бы несмотря на это, делало это неочевидно и могло бы привести к багам. Если нужно исключение - прописываем его осознанно и явно.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 29.02.2012, 20:21
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 55  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Закрываю, ибо всё сказано.
__________________
Reality.getBounds(this);

Старый 07.03.2012, 15:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 56  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Использую this и super только когда нужно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.03.2012, 22:29
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 57  
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Использую this и super всегда. Денискина школа большого у-шу.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 23:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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