Встречается на собеседованиях • сегодня
В чем разница между композицией и наследованным в Python
Композиция и наследование — два разных подхода к организации кода.
Наследование создает отношение "является" (is-a). Дочерний класс наследует все методы и атрибуты родительского:
python
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"Композиция создает отношение "имеет" (has-a). Класс содержит экземпляр другого класса как атрибут:
python
class Engine:
def start(self):
return "Engine started"
class Car:
def __init__(self):
self.engine = Engine()
def start(self):
return self.engine.start()Ключевые различия:
- Наследование жестко связывает классы, композиция дает больше гибкости
- При изменении родительского класса могут сломаться все дочерние
- Композиция лучше подходит для случаев, когда поведение может меняться динамически
В Python предпочтительнее использовать композицию там, где это возможно, следуя принципу "композиция предпочтительнее наследования".

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы