Встречается на собеседованиях • сегодня

Какие знаешь композиции

В Java композиция — это принцип проектирования, при котором один класс содержит ссылку на другой класс, делегируя ему часть функциональности. Это альтернатива наследованию (предпочтительнее из-за гибкости).

Пример:

java
class Engine {
    void start() {
        System.out.println("Engine started");
    }
}

class Car {
private Engine engine; // Композиция

text
Car() {
    this.engine = new Engine();
}

void start() {
    engine.start(); // Делегирование
}

}

text
**Преимущества:**  
- Контроль над жизненным циклом зависимого объекта.  
- Легкая замена зависимостей (например, через DI).  
- Избегание проблем множественного наследования.  

**Отличие от агрегации:** при композиции вложенный объект не существует без контейнера (например, `Engine` создается внутри `Car` и уничтожается с ним).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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