Почему говорят, что интерфейс описывает поведение объекта?

Рейтинг: 2Ответов: 2Опубликовано: 25.05.2023

Если вдуматься, интерфейс никак не описывает поведение, он описывает контракт и способ взаимодействия, а поведение описывается в реализации. Но я постоянно слышу, что люди говорят, что интерфейс описывает поведение. Получается, так говорить ошибочно?

Ответы

▲ 0

Здесь проблема определений.

Что называть поведением? Если мы говорим про поведение чисто в контексте взаимодействия с другими объектами, то здесь под поведением мы понимаем то, какие методы объект предоставляет, в каком формате через эти методы он принимает запросы, и в каком формате возвращает ответы.

С этой точки зрения - да, интерфейс определяет поведение.

Но если рассматривать более широкий контекст, то, конечно, есть много аспектов, которые можно назвать поведением, но которые не описываются интерфейсом.

▲ -2

Именно интерфейс описывает поведение. Ведь именно в интерфейсе будут определены методы например есть или говорить. А вот говорить на английском или испанском, есть курицу или торт - это уже детали. Есть и говорить - это и есть описание поведения, а есть курицу - это фактическая реализация поведения. Такие детали реализации как курица, или торт - хранятся в реализируюем классе. А само поведение в интерфейсе. И это концептуально правильно. Потому что, описав поведение в интерфейсе, а не реализующем классе у вас станут возможным полиморфизм, абстракция и повторное использование кода.