Определен ли в абстрактном классе конструктор для инициализации его наследников?

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

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

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

В Java абстрактный класс может иметь конструктор, который используется для инициализации полей или выполнения общей логики при создании объектов его подклассов. Хотя абстрактный класс сам по себе не может быть инстанцирован напрямую, его конструктор вызывается при создании объекта наследника.

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

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

В Java абстрактный класс может иметь конструктор, который используется для инициализации полей или выполнения общей логики при создании объектов его подклассов. Хотя абстрактный класс сам по себе не может быть инстанцирован напрямую, его конструктор вызывается при создании объекта наследника.

Пример:

abstract class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    public Dog(String name) {
        super(name); // вызов конструктора абстрактного класса
    }
}

Таким образом, конструктор абстрактного класса служит для инициализации общих свойств, и наследники вызывают его через super().

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

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

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

Подробнее