Если у вас есть несколько классов, которые вы хотите, чтобы они наследовали от базового класса для общей функциональности, следует ли реализовать базовый класс, используя класс или абстрактный класс?
Я бы сказал, что если вы не планируете вызывать базовый класс сам по себе, тогда вы должны определить его как абстрактный класс.