Junior — Middle
Koja je funkcija operatora super u kontekstu nasleđivanja i poziva metoda ili konstruktora osnovne klase?
sobes.tech АИ
Одговор од АИ
Operator super u Javi se koristi za pristup metodama ili konstruktorima osnovne (roditeljske) klase iz podklase.
Glavne namene super:
- Pozivanje konstruktora osnovne klase iz konstruktora podklase, kako bi se inicijalizovao deo objekta definisan u roditelju.
- Pozivanje prepisane metode osnovne klase ako je u podklasi potrebno dopuniti ili izmeniti ponašanje, a pritom sačuvati deo logike roditelja.
Primer korišćenja konstruktora:
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
Dog(String name) {
super(name); // poziv konstruktora Animal
}
}
Primer poziva metode osnovne klase:
class Animal {
void sound() {
System.out.println("Neki zvuk");
}
}
class Dog extends Animal {
@Override
void sound() {
super.sound(); // poziv metode osnovne klase
System.out.println("Lajanje");
}
}
Na ovaj način, super pomaže u upravljanju nasleđivanjem i ponovnom upotrebom koda osnovne klase.