@10Alexandr01

Есть ли смысл реализовывать интерфейс абстрактным классом?

У нас есть интерфейс, мы реализуем его по умолчанию в абстрактном классе т. е. пишем его дефолтную реализацию (при этом добавляем новые функции, и реализуем "старые")
Зачем абстрактный класс? : это дефолтная реализация интерфейса, которая чаще всего используется.
Зачем интерфейс? У нас могут быть прямые классы-реализации интерфейса, в которых не должно быть тех функций которые добавленные в абстрактном классе.
Попытался максимально подробно описать вопрос)
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Я это понимаю так:
Интерфейс - это публичный контракт. Информация для посторонних, для тех кто будет с классом взаимодействовать.
Абстрактный класс - это внутренняя кухня, прототип для реализации.
То есть одно другому никак не противоречит. Даже если абстрактный класс и интерфейс будут сильно похожи.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы