-1

На хабре в комментариях к одному посту о проведении собеседований разрослась ветка об интерфейсах и абстрактных классах.

А теперь классические вопросы: Чем отличаются интерфейсы от абстрактных классов? Плюсы-минусы тех и других? В каких ситуациях выбирать интерфейсы, а в каких абстрактные классы?

nitrocaster
  • 4,492

1 Answers1

5

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

Все остальное наподобие того, что абстрактные классы могут иметь поля и не только абстрактные методы, является уже вторичным, и скорее следствием из приведенного выше. О плюсах и минусах рассуждать считаю некорректным, так как это разные сущности, похожесть которых в большей степени внешняя

DreamChild
  • 36,244