Junior — Middle
Каква е функцията на оператора super в контекста на наследяването и извикването на методи или конструктори на базовия клас?
sobes.tech AI
Отговор от 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("Някакъв звук");
}
}
class Dog extends Animal {
@Override
void sound() {
super.sound(); // извикване на метода на базовия клас
System.out.println("Лаене");
}
}
По този начин super помага за управлението на наследяването и повторното използване на кода на базовия клас.