Да .. Вы правы, просто суммируя
Что такое абстрактный класс?
Абстрактный класс - это особый класс, который не может быть создан. Итак, вопрос в том, зачем нам нужен класс, который не может быть создан? Абстрактный класс должен быть только подклассифицирован (унаследован от). Другими словами, он только позволяет другим классам наследовать от него, но не может быть создан. Преимущество состоит в том, что он обеспечивает определенные иерархии для всех подклассов. Проще говоря, это своего рода контракт, который вынуждает все подклассы придерживаться одинаковых иерархий или стандартов.
Что такое интерфейс?
Интерфейс не является классом. Это сущность, которая определяется словом Интерфейс. Интерфейс не имеет реализации; он имеет только подпись или, другими словами, только определение методов без тела. Как одно из сходств с абстрактным классом, это контракт, который используется для определения иерархий для всех подклассов или он определяет конкретный набор методов и их аргументы. Основное различие между ними заключается в том, что класс может реализовывать более одного интерфейса, но может наследовать только от одного абстрактного класса. Поскольку C # не поддерживает множественное наследование, интерфейсы используются для реализации множественного наследования.
Оба вместе
Когда мы создаем интерфейс, мы в основном создаем набор методов без какой-либо реализации, которые должны быть переопределены реализованными классами. Преимущество состоит в том, что он позволяет классу быть частью двух классов: одного из иерархии наследования и одного из интерфейса.
Когда мы создаем абстрактный класс, мы создаем базовый класс, который может иметь один или несколько завершенных методов, но по крайней мере один или несколько методов остаются незавершенными и объявляются абстрактными. Если все методы абстрактного класса не завершены, то это то же самое, что и интерфейс. Цель абстрактного класса - предоставить определение базового класса для того, как будет работать набор производных классов, а затем позволить программистам заполнить реализацию в производных классах.