![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Feb 2001
Сообщений: 33
|
привет! У меня вопрос по ас3 ООП: мне нужно чтобы в функцию передавался только объект наследованый от Boo и имеющий интерфейс IGoo. Как это можно реализовать без проверок ифами, на уровне компилятора ?
спасибо |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 33
|
Ну тут вся суть в том чтобы заставить переданый класс обязательно оверрайдить все методы интерфейса, а при Вашем варианте обязательность теряется
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Никак. Во всяком случае, на текущий момент.
|
|
|||||
|
по-моему, такой вариант решил бы поставленную задачу
upd:
ну и методы интерфейса не оверрайдятся, а реализуются.. если необходимо, чтобы класс передаваемого экземпляра обязательно не пустым образом реализовывал эти методы - можно в классе BaseGoo во всех методах IGoo выбрасывать ошибки, тогда наследникам придётся все методы переписывать.. если я правильно вас понял вообще Последний раз редактировалось fljot; 18.08.2009 в 13:30. |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 33
|
о! Это мысль! (насчет ошибок). Правда это не на стадии компилятора будет но все же лучше чем ничего. Спасибо!
|
|
|||||
|
а virtual разве в ActionScript нет(это насчёт обязательного оверрайда/реализации)?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Компилятор поддерживает, плеер — нет. Для порядку virtual стоит писать.
|
|
|||||
|
Modus ponens
|
Фишка в том, что в AS3 virtual - это антоним override. Т.е. любая функция, которая не override считается virtual (не важно, указали вы это или нет).
__________________
Hell is the possibility of sanity |
|
|||||
|
а, ё-маё, чушь тут городю) уже полгода к C++ не прикосался.. хотел сказать чистая виртуальная функция.
в c++ это так вролде записывается: она делает класс абстрактым и требует переопределения в дочернем. такого нет в AS? |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|