Работая с сложными объектами, которые имеют похожее назначение, часто можно попасться на удочку дублирования. Решить подобную проблему, предоставить общий интерфейс классам и пришел модуль abc или Abstract Base Classes. Кроме того, это отличный способ практиковать хорошие принципы проектирования и использования парадигм ООП. Итак, абстрактный класс - это класс, в котором реализован хотя бы 1 абстрактный метод. Можно представить его как чертеж, по которому будут строиться дочерние классы. В свою очередь, абстрактный метод - это метод-заглушка, то есть без реализации и нужен он затем, чтобы показать, что этот метод обязательно должен быть реализован в всех дочерних классах. Кроме того, в абстрактном классе могут присутствовать не только абстрактные методы, но и методы с конкретной реализацией, которые можно просто брать и использовать в дочерних классах. Интересной особенностью абстрактного класса является то, что нельзя создать его экземпляр, только от дочерних классов. Кроме того, созд