Встречается на 3% собеседований по Python

Зачем нужно наследование

Наследование позволяет создавать новые классы на основе существующих, переиспользуя их функционал. Основные преимущества:

  1. Повторное использование кода - дочерний класс наследует все методы и атрибуты родительского
  2. Расширение функциональности - можно добавлять новые методы или переопределять существующие
  3. Организация иерархии - логическая группировка классов по общим признакам

Пример:

python
class Animal:
    def __init__(self, name):
        self.name = name
    
    def speak(self):
        return "Sound"

class Dog(Animal):
    def speak(self):  # Переопределение метода
        return "Woof!"

dog = Dog("Rex")
print(dog.name)  # Rex (унаследовано)
print(dog.speak())  # Woof! (переопределено)

Нюансы:

  • Множественное наследование может усложнить архитектуру
  • Нарушение принципа инкапсуляции, если злоупотреблять protected-атрибутами
  • Жесткая связь между классами (лучше использовать композицию там, где это уместно)

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

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

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