Junior — Middle
Kokia yra super operatoriaus funkcija paveldėjimo ir pagrindinio klasės metodų ar konstruktorių iškvietimo kontekste?
sobes.tech AI
Atsakymas iš AI
Java super operatorius naudojamas prieiti prie tėvinio (bazinės) klases metodų ar konstruktorių iš išvestinės (subklasės).
Pagrindiniai super naudojimo tikslai:
- Kviečiant tėvinio (bazinės) klases konstruktorių iš subklasės konstruktoriaus, kad būtų inicializuota objekto dalis, apibrėžta tėvinėje klasėje.
- Kviečiant perrašytą tėvinės klasės metodą, jei subklasėje reikia papildyti ar pakeisti elgesį, išlaikant dalį tėvinės logikos.
Konstruktoriaus pavyzdys:
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
Dog(String name) {
super(name); // tėvinio konstruktoriaus iškvietimas
}
}
Metodo iškvietimo pavyzdys:
class Animal {
void sound() {
System.out.println("Kažkoks garsas");
}
}
class Dog extends Animal {
@Override
void sound() {
super.sound(); // tėvinio metodo iškvietimas
System.out.println("Laižymas");
}
}
Šiuo būdu super padeda valdyti paveldėjimą ir pakartotinai naudoti tėvinės klasės kodą.