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

Каково назначение оператора super в контексте наследования и вызова методов или конструкторов базового класса?

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

sobes.tech AI

Оператор super в Java используется для обращения к методам или конструкторам базового (родительского) класса из подкласса.

Основные назначения super:

  • Вызов конструктора базового класса из конструктора подкласса, чтобы инициализировать часть объекта, определённую в родителе.
  • Вызов переопределённого метода базового класса, если в подклассе нужно дополнить или изменить поведение, но при этом сохранить часть логики родителя.

Пример использования конструктора:

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

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

Пример вызова метода базового класса:

class Animal {
    void sound() {
        System.out.println("Some sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // вызов метода базового класса
        System.out.println("Bark");
    }
}

Таким образом, super помогает управлять наследованием и повторным использованием кода базового класса.