Цитата:
Сообщение от razerw
что тогда будет в таком случае.
я отправляю в метод blow() интерфейса IBlowable аргумент.
Но метод blow() имплементирова в классах Car, Tank. какая будет реакция? аргумент придет в оба класса? Car, Tank?
|
Нет. Интерфейс, это как инструкция для пользования. То-есть класс который "хочет" реализовывать интерфейс, 100% должен содержать описанные свойства и методы интерфейса который он реализовует.
Аналогию можно провести к USB-порту. К примеру вы берёте объект "мышка", проверяете есть ли у него интерфейс "USB", если есть, значит Вы можете его подключить к USB на Вашем компьютере и начать ею пользоваться. Но это не значит что если вы подключили мишку и начали использовать USB порт, то все устройства с USB начнут работать.
И соответсвенно существует огромное количество девайсов с "USB-интерфейсом", флешка, блютуз, клавиатура, колонки, мышка и так далее которые используют USB-интерфейс по своим нуждам. Что-бы подключить какой-либо из устройств, нам нужно узнать, реализовывает ли объект USB-интерфейс и если реализовывает использовать его по своим нуждам ( соответсвено передвигая мышкой мы будем передавать данные через сам интерфейс, а с другой стороны эти данные будут считываться ). То-есть прямоугольный штекер с четырьмя контактами по которым передаются различные данные. Что в программирование реализовывалось бы, как различные методы по работе данного интерфейса.