Цитата:
Сообщение от Котяра
Это просто термин. наследование — ПОЛУЧЕНИЕ функций и пропертей. Интерфейсность — принятие ПОЛОЖЕНИЙ о функциях и пропертях.
|
Тогда уж "интерфейсность" это ОБЯЗАТЕЛЬСТВО реализовать методы и геттер/сеттеры, принятое классом. Не запутывайте людей.
Термин - это точное определение понятия. Я не понимаю фразы "наследование через интерфейс".
Я понимаю, что есть просто наследование. Я понимаю, что класс может реализовывать интерфейс. Так же я понимаю, что подкласс и так имеет методы суперкласса, навязанные интерфейсом, который реализует этот класс. Это и есть "наследование через интерфейс"? Ткните меня в это понятие, желательно в академической литературе, а не в досужих разговорах.
Цитата:
Сообщение от Nel
Существенный + использования так и не высказали, а хотелось бы узнать!
|
Существенный плюс уже был описан.
Цитата:
например есть некий Интерфейс, скажем основа для машинки, в ней есть методы мув и т.д.
к этому интерфейсу пишется фигова туча классов машинок
|
Пишется туча классов не "к" интерфейсу, а пишется туча классов, реализующих интерфейс. Прочувствуйте разницу!
Предположим, в интерфейсе IMovable описан один метод moveTo.
Класс машинки - Car.
Цитата:
|
у машинок базовый класс является Sprite интерфейс собственно этот интерфейс
|
Опять же. Терминология страдает. Базовый класс машинок реализует, имплементит интерфейс.
А вот базовый класс вертолета (Heliocopter) совсем отличается от базового класса машинки.
Но вертолет и машика могут двигаться (moveTo).
Теперь, предположим, что у нас есть два объекта: типа Heliocopter и Car.
Как передать эти объекты обработчику движения, реализованному, предположим, в каком-то контроллере?
Какой тип должен принимать этот обработчик?
Вот теперь можно воспользоваться всей силой интерфейсов!
Оказывается, оба объекта имеют тип интерфейса - IMovable.
А обработчик выглядит так:

Код AS1/AS2:
function process(value:IMovable):void {
value.moveTo();
}
Еще приятнее интерфейс проявляет себя при динамическом связывании, когда тип объекта не известен на этапе компиляции.
Проверем объект на тип интерфейса, а не на тип его класса или суперклассов.
Цитата:
после этого в функции для подключения машинок к сообщениям физики, аи т.д. передаем их по интерфейсу на уровне подключения их GameScene.addChild(****);
вылавливаем ошибку что сюда можно передавать только интерфейс DisplayObject
|
addChild всегда принимал тип DisplayObject.
Цитата:
как бывшиму Сишнику эти интерфейсы ужасно не удобны!
|
Как же так Вы стали _бывшим_?
Цитата:
|
Собстено зачем такие жертвы, если Интерфейс наследуем от Sprite, дальше все машинки наследуем от интефейса и все!
|
Ну никак мы не можем наследовать интерфейс от класса.
Наследовать интерфейс можно только от интерфейса.