Когда использовать интерфейс вместо абстрактного класса и наоборот? - PullRequest
390 голосов
/ 26 января 2009

Это может быть общий вопрос ООП. Я хотел сделать общее сравнение между интерфейсом и абстрактным классом на основе их использования.

Когда нужно использовать интерфейс и когда нужно использовать абстрактный класс ?

Ответы [ 22 ]

0 голосов
/ 26 января 2009

Абстрактный класс может иметь реализации.

Интерфейс не имеет реализаций, он просто определяет вид контракта.

Также могут быть некоторые языковые различия: например, C # не имеет множественного наследования, но в классе может быть реализовано несколько интерфейсов.

0 голосов
/ 09 мая 2014

Основное правило большого пальца: для «существительных» используйте абстрактный класс и для «глаголов» используйте интерфейс

Eg: car - это абстрактный класс, а drive, мы можем сделать его интерфейсом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...