Sobes.tech
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ą.