Задать вопрос
Beshere
@Beshere
Разработчик

Почему используют interface a не abstract class?

В примерах к курсам и книгам, где рассматриваются вопросы паттернов ООП и фреймворки, почти везде используются интерфейсы по такому типу:

interface Button;
class MyButton implements Button;

Т.е. имеется ввиду абстракция, но используется механизм интерфейса. Почему?

Логичнее выглядит так:

abstract class Button;
class MyButton extends Button;
А уж интерфейсы типа Clickable применять потом.
  • Вопрос задан
  • 1272 просмотра
Подписаться 5 Простой Комментировать
Решение пользователя profesor08 К ответам на вопрос (5)
profesor08
@profesor08
Все зависит от того, что тебе действительно нужно. Либо тебе надо расширить функционал кнопки, и ты наследуешься от нее, либо тебе нужен функционал кнопки в твоем классе, и ты имплементируешь интерфейс кнопки.
class Button;
class RedButton extends Button;

interface Button;
class Image implements Button;
Ответ написан
Комментировать