В некоторых случаях вы хотите иметь несколько общих логических схем / полей / методов между несколькими классами, но не хотите, чтобы базовый класс создавался сам по себе, только расширяющиеся классы.
Для таких прецеденты, абстрактный класс, даже без каких-либо абстрактных методов, могут добиться цели