Встречается на собеседованиях • сегодня

В чем разница между абстрактным классом и обычным классом

Абстрактный класс в Python — это класс, который не предназначен для создания экземпляров напрямую, а служит шаблоном для других классов. Он может содержать абстрактные методы (без реализации), которые должны быть переопределены в дочерних классах. Обычный класс можно инстанциировать и использовать напрямую.

Ключевые отличия:

  1. Абстрактный класс требует наследования, обычный — нет.
  2. Абстрактный класс может содержать абстрактные методы (@abstractmethod), обычный — нет.
  3. Абстрактный класс нельзя инстанциировать напрямую (вызовет TypeError).

Пример:

python
from abc import ABC, abstractmethod

class AbstractAnimal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

class Dog(AbstractAnimal):
    def make_sound(self):
        return "Woof!"

# animal = AbstractAnimal()  # Ошибка!
dog = Dog()  # OK
print(dog.make_sound())  # Woof!
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы