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

Как бы выглядела абстракция на уровне владения одного класса другими

Абстракция владения в Java обычно реализуется через композицию или агрегацию.

Композиция (сильное владение):

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

class Car {
    private final Engine engine = new Engine(); // Композиция - двигатель не существует без машины
    void start() { engine.start(); }
}

Двигатель создается и уничтожается вместе с машиной.

Агрегация (слабое владение):

java
class Wheel {
    void rotate() { System.out.println("Wheel rotating"); }
}

class Bicycle {
    private Wheel wheel; // Агрегация - колесо может существовать отдельно
    void setWheel(Wheel wheel) { this.wheel = wheel; }
    void ride() { if (wheel != null) wheel.rotate(); }
}

Колесо передается извне и может быть заменено.

Выбор зависит от жизненного цикла объектов. Композиция — для жесткой связи, агрегация — для гибкости.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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