Что такое абстрактные классы ?

Спросят с вероятностью 10%



Абстрактные классы - это классы содержащие один или несколько абстрактных методов. Абстрактный метод - это метод, который определен в абстрактном классе, но не имеет реализации в самом классе. Вместо этого они должны быть реализованы в подклассах, наследующих абстрактный класс.



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



Абстрактные классы можно создать с помощью модуля abc (Abstract Base Classes). Вот пример:

from abc import ABC, abstractmethod



class Animal(ABC): # Наследование от ABC позволяет создать абстрактный класс

@abstractmethod

def make_sound(self):

pass



class Dog(Animal): # Класс Dog наследует абстрактный класс Animal

def make_sound(self):

return "Woof!"



class Cat(Animal): # Класс Cat также наследует абстрактный класс Animal

def make_sound(self):

return "Meow!"



# Создаем экземпляры подклассов и вызываем методы

dog = Dog()

print(dog.make_sound()) # Выведет: Woof!



cat = Cat()

print(cat.make_sound()) # Выведет: Meow!




В приведенном выше примере класс Animal является абстрактным, потому что он содержит абстрактный метод make_sound(). Этот метод должен быть реализован в каждом конкретном подклассе Dog и Cat. Если попытаться создать экземпляр Animal, Python выдаст ошибку, потому что эти классы не могут быть инстанциированы напрямую.



➡️ Примеры ответов

➡️ Список всех вопросов на Python Developer



🧩 Идущий | 🔐 Собесы | 🔐 Тестовые