![]() |
|
||||||||||
|
|||||||
|
.
|
Цитата:
Термин - это точное определение понятия. Я не понимаю фразы "наследование через интерфейс". Я понимаю, что есть просто наследование. Я понимаю, что класс может реализовывать интерфейс. Так же я понимаю, что подкласс и так имеет методы суперкласса, навязанные интерфейсом, который реализует этот класс. Это и есть "наследование через интерфейс"? Ткните меня в это понятие, желательно в академической литературе, а не в досужих разговорах. Существенный плюс уже был описан. Цитата:
Предположим, в интерфейсе IMovable описан один метод moveTo. Класс машинки - Car. Цитата:
А вот базовый класс вертолета (Heliocopter) совсем отличается от базового класса машинки. Но вертолет и машика могут двигаться (moveTo). Теперь, предположим, что у нас есть два объекта: типа Heliocopter и Car. Как передать эти объекты обработчику движения, реализованному, предположим, в каком-то контроллере? Какой тип должен принимать этот обработчик? Вот теперь можно воспользоваться всей силой интерфейсов! Оказывается, оба объекта имеют тип интерфейса - IMovable. А обработчик выглядит так: Еще приятнее интерфейс проявляет себя при динамическом связывании, когда тип объекта не известен на этапе компиляции. Проверем объект на тип интерфейса, а не на тип его класса или суперклассов. Цитата:
Цитата:
Цитата:
Наследовать интерфейс можно только от интерфейса. |
![]() |
Часовой пояс GMT +4, время: 00:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|