Один интервьюер задал мне следующий вопрос, и я не мог ответить:Зачем нужны интерфейсы, когда существуют абстрактные классы?
Зачем нам нужны интерфейсы, когда существуют абстрактные классы?
Независимо от методов, которые мы пишем в интерфейсе, мы также можем написать в абстрактном классе. Тогда зачем нам интерфейсы раздельно?
Может кто-нибудь рассказать, в чем причина?
Заранее спасибо ...
Наследование множественного наследства позволяет реализовать несколько интерфейсов, но может только наследовать один класс в C# –
С точки зрения Java, абстрактные классы предназначены для иерархии наследования, интерфейсы для контракта на реализацию. – NINCOMPOOP
Интерфейсы также неоценимы в сценариях впрыска и модуляции зависимостей. Абстрактные базовые классы все еще могут содержать логику и, как результат, не могут быть полностью изделены в сценариях тестирования. – mclark1129