Встречается на собеседованиях • сегодня
В чем разница между композицией и агрегацией в ООП
Композиция и агрегация — это виды ассоциации между объектами, но с разной степенью зависимости:
**Композиция** — строгая связь, где "часть" не может существовать без "целого". При уничтожении родителя уничтожаются и его части.
Пример: `Car` и `Engine` — двигатель не существует без машины.
```java
class Engine { /*...*/ }
class Car {
private Engine engine;
Car() {
this.engine = new Engine(); // создается внутри класса
}
}
```
**Агрегация** — слабая связь, где "часть" может жить отдельно от "целого". Объекты передаются извне.
Пример: `Department` и `Employee` — сотрудник может работать без отдела.
```java
class Employee { /*...*/ }
class Department {
private List employees;
Department(List employees) {
this.employees = employees; // принимается извне
}
}
```
**Ключевое отличие**: жизненный цикл зависимого объекта. В композиции — управляется родителем, в агрегации — независим.

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