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