Абстрактный класс нужен для того, чтобы обеспечить двум или более другим классам, которые будут наследовать его, одинаковый доступ к некоторым методам, не реализовывая эти методы в абстрактном классе.
Например, у тебя есть два класса "яблоко" и "апельсин".
И теперь, ты хочешь их "съесть"
Ты взываешь "яблоко1.съесть" и "апельсин1.съесть". Всё классно. Но, эти два объекта не от одного предка и нельзя в точности сказать, что оба объекта на самом деле имеют метод "съесть".
Если это понятно, то давай далее.
Абстрактный метод позволяет НЕ писать определение метода, а лишь его заголовок.
Не знаю точно как это в питоне. Но, в обычном классе ты должен описать метод (допустим оставив пустым) и затем наследовать от него другие классы. В то время как в абстрактном классе реализация метода не нужна, достаточно сказать, что метод там есть и он должен быть реализован во всех наследуемых классах, а так же, нельзя создать объект на основе абстрактного класса.