Интерфейсы и абстрактные классы в C# имеют свои особенности и отличия. 14
Абстрактный класс — это класс, содержащий один или несколько абстрактных методов. 1 Особенностью такого класса является то, что нельзя создать объект данного класса. 1 Абстрактные классы обычно используются для определения базового класса в иерархии классов. 1
Интерфейс — это абстрактный ссылочный тип, который может содержать некоторое количество методов, свойств, событий и индексаторов. 1 Начиная с версии C# 8.0 ещё и статические поля и константы. 1 Также как и абстрактный класс нельзя создать объект данного типа, но можно объявить, например, сигнатуры нужных методов. 1
Таким образом, основное отличие в том, что абстрактные классы фокусируются на общем состоянии классов-наследников, а интерфейсы строятся вокруг какого-либо общего действия. 4
Выбор между интерфейсами и абстрактными классами зависит от конкретных задач разработки.