Создание нескольких конструкторов в классе

Перегрузка конструктора означает несколько конструкторов с разными списками параметров. Общую инициализацию удобно сосредоточить в одном и делегировать ему через this(...).

Короткий ответ

Что ответить на собеседовании

Перегрузка конструктора означает несколько конструкторов с разными списками параметров. Общую инициализацию удобно сосредоточить в одном и делегировать ему через this(...).

Подробный разбор

Ответ с пояснениями

Условие

В проекте присутствует класс A, содержащий поле id. У класса уже определён конструктор без параметров A(). Требуется реализовать перегрузку конструктора, добавив дополнительные варианты инициализации.

Ответ

Перегрузка конструктора означает несколько конструкторов с разными списками параметров. Общую инициализацию удобно сосредоточить в одном и делегировать ему через this(...).

class A {
    private final long id;
    public A() { this(0); }
    public A(long id) { this.id = id; }
    public A(A other) { this(other.id); }
    public long getId() { return id; }
}

Здесь long и значение по умолчанию 0 выбраны как пример, поскольку тип id и правила его заполнения не заданы. Конструктор копирования создаёт новый объект с тем же ID. Null в нём нужно либо запретить явно, либо принять как ошибку. Конструкторы не имеют возвращаемого типа и не наследуются.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее