Junior — Middle
Jaka jest funkcja operatora super w kontekście dziedziczenia i wywoływania metod lub konstruktorów klasy bazowej?
sobes.tech AI
Odpowiedź od AI
Operator super w Javie jest używany do odwoływania się do metod lub konstruktorów klasy bazowej (rodzica) z podklasy.
Główne zastosowania super:
- Wywołanie konstruktora klasy bazowej z konstruktora podklasy, aby zainicjalizować część obiektu zdefiniowaną w rodzicu.
- Wywołanie nadpisanej metody klasy bazowej, jeśli w podklasie trzeba uzupełnić lub zmienić zachowanie, zachowując część logiki rodzica.
Przykład użycia konstruktora:
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
Dog(String name) {
super(name); // wywołanie konstruktora Animal
}
}
Przykład wywołania metody klasy bazowej:
class Animal {
void sound() {
System.out.println("Jakiś dźwięk");
}
}
class Dog extends Animal {
@Override
void sound() {
super.sound(); // wywołanie metody klasy bazowej
System.out.println("Szczekanie");
}
}
W ten sposób super pomaga zarządzać dziedziczeniem i ponownym użyciem kodu klasy bazowej.