Показать сообщение отдельно
Старый 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
Я здесь пишу, чего же боле?