Sobes.tech
Назад к вопросам
Junior — Middle
66

Возможно ли определить конструктор внутри абстрактного класса?

Компании, где спрашивали
АЙ-ТЕКОАЙ-ТЕКО
айтеко

Ответ от нейросети

sobes.tech AI

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

Это полезно для инициализации общих полей или выполнения общей логики при создании объектов наследников.

Пример:

public abstract class Animal {
    protected String name;

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

    public abstract void makeSound();
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    @Override
    public void makeSound() {
        System.out.println(name + " говорит: Гав!");
    }
}

Здесь конструктор абстрактного класса Animal вызывается из конструктора подкласса Dog.