Назад к вопросам
Middle
62
questionbank

Как в Python реализуется абстрактный класс?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Абстрактные классы в Python реализуются с использованием модуля abc (Abstract Base Classes). Определяется класс, который наследуется от ABC, и методы, которые должны быть реализованы в дочерних классах, помечаются декоратором @abstractmethod.

import abc

class AbstractClass(abc.ABC):
    @abc.abstractmethod
    def abstract_method(self):
        pass

    def concrete_method(self):
        // Обычный метод
        print("Это конкретный метод")

// Дочерний класс MUST реализовать abstract_method
class ConcreteClass(AbstractClass):
    def abstract_method(self):
        // Реализация абстрактного метода
        print("Это реализация абстрактного метода")

# Попытка создать экземпляр AbstractClass вызовет TypeError
# obj = AbstractClass()

# Создание экземпляра ConcreteClass возможно, так как абстрактный метод реализован
obj = ConcreteClass()
obj.abstract_method()
obj.concrete_method()

С помощью абстрактных классов можно определить интерфейс, которому должны соответствовать производные классы, не допуская создания экземпляров самого абстрактного класса. Это обеспечивает структуру и гарантирует наличие определенных методов в классах, наследующихся от абстрактного.