![]() |
Цитата:
Вы еще раз задумайтесь. Нельзя вызвать у объекта методы с модификаторами private и protected. Какой был бы смысл упоминать их в интерфейсе? Интерфейс это взаимодействие. Он говорит что вот у этого объекта можно вызвать такой-то метод. А если его нельзя вызвать, то его и не может быть в интерфейсе. Как наличие или отсутствие собственных, внутренних методов может помешать "созданию системы и взаимодействию"? Эти методы — личное дело каждого, недоступное для других. Они никак не участвуют ни в каких системах и взаимодействиях. |
Для чего нужны интерфейсы? Ну, представьте, что у вас есть несколько классов, которые не наследуют друг-друга в силу очень разной их природы(или в силу того, что в as3 нет множественного наследования), но, экземпляры которых надо все таки передавать в какую-то функцию, чтобы выполнить определенное дейсвие, общее для всех них. Как передать их в эту функцию? Как Object?
Частный случай. Скажем у вас есть игрушка-платформер, на сцене объекты - частицы, персонаж игрока, управляемые компьютером монстры, анимированный огонь и т.д. Вам нужно поставить сцену на паузу. Для этого вы создаете интерфейс Код AS3:
Код AS3:
|
Wolsh
Нет, книги типа Action Script 3: подробное руководство и пр. iflamberg Да, таким образом я и использую интерфейсы, т.е. объединяю едиными функциями различные объекты для конкретного функционала. Кстати, тот же ваш пример, если заменить интерфейс базовым классом, получается почти то же самое...? С другой стороны, если использовать больше композицию (без или с минимум наследования), тогда да интерфейсы приобретают большую значимость. |
Цитата:
|
Ладно, я окончательно потерял нить диалога (я Вам про одно, Вы мне о чем-то вообще своем отвечаете.. или это вопрос, нет ли у меня книги Мука? Есть).
Цитата:
Цитата:
|
Wolsh
>>Попробуйте написать "базовый" класс и унаследовать от него классы, расширяющие ТекстФилд, Спрайт и Битмап. Если получится, то — да, то же самое. Если взять в контексте С++, где есть множественное наследование, и особо не прибегать к композиции, то тогда какова в данном случае значимость и функционал интерфейсов? Если не ошибаюсь в С++ нет интерфейсов, вероятно потому что есть множественное наследование... Ниже, вы конечно ответили частично на этот вопрос но все же: >>Естественно, ведь интерфейсы не имеют никакого отношения к классам и наследованию. Они описывают только публичные методы только экземпляров.[/quote] |
Цитата:
|
В as3 интерфейсы выполняют ту же роль, что абстрактные классы и множественное наследование в спп. Все.
|
iflamberg
Код AS3:
|
Да? И как Вы докажете компилятору, что у этих эеземпляров действительно есть метод pause?
|
| Часовой пояс GMT +4, время: 21:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.