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