Абстрактные классы в C# следует использовать в следующих случаях:
- Когда нужно определить общий функционал для родственных объектов. metanit.com Например, если есть система транспортных средств: легковой автомобиль, автобус, трамвай, поезд и т. д.. metanit.com У этих объектов можно выделить общие признаки. metanit.com
- Когда проектируется большая функциональная единица, которая содержит много базового функционала. metanit.com Например, если нужно, чтобы все производные классы на всех уровнях наследования имели некоторую общую реализацию. metanit.com
Использование абстрактных классов нецелесообразно, если требуется обеспечить полную абстракцию, не предоставляя ни одной общей реализации. nweb42.com В таких случаях лучше прибегнуть к интерфейсам, возможно, в сочетании с абстрактными классами для создания более сложных многоуровневых структур. nweb42.com