Встречается на собеседованиях • сегодня
Что из себя представляет проблема: наследование vs композиция
В Python композиция обычно предпочтительнее наследования, так как она обеспечивает более гибкую и поддерживаемую архитектуру.
Наследование создаёт жёсткую связь между классами (is-a отношение), что может привести к хрупкости кода:
python
class Engine:
def start(self):
print("Engine started")
class Car(Engine): # Плохо: машина НЕ является двигателем
pass
text
**Композиция** (has-a отношение) даёт больше гибкости:
```python
class Car:
def __init__(self):
self.engine = Engine() # Хорошо: машина содержит двигатель
def start(self):
self.engine.start()Когда что использовать:
- Наследование — когда дочерний класс действительно является специализацией родителя (например,
CatнаследуетAnimal). - Композиция — когда нужно переиспользовать функциональность без жёсткой связи.
Композиция уменьшает coupling и упрощает тестирование.

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