Встречается на собеседованиях • сегодня
В чем разница между наследованием и композицией
Наследование — это отношение "is-a", где подкласс наследует поля и методы родительского класса. Композиция — это отношение "has-a", где класс содержит экземпляр другого класса.
Наследование:
java
class Animal {
void eat() { System.out.println("Eating..."); }
}
class Dog extends Animal {} // Dog IS-A AnimalКомпозиция:
java
class Engine {
void start() { System.out.println("Engine started"); }
}
class Car {
private Engine engine; // Car HAS-A Engine
Car() { this.engine = new Engine(); }
}Ключевые отличия:
- Наследование создает жесткую связь, композиция — гибкую
- Композиция лучше для изменения поведения (можно подменить объект)
- Наследование нарушает инкапсуляцию (подкласс зависит от реализации родителя)
- В Java множественное наследование запрещено, а композицию можно использовать сколько угодно
Лучше предпочитать композицию наследованию, если нет явной иерархии "является".

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