Назад к вопросам
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 помогает управлять наследованием и повторным использованием кода базового класса.