Sobes.tech
Junior — Middle

Aký je význam operátora super v kontexte dedičnosti a volania metód alebo konštruktorov základnej triedy?

sobes.tech AI

Odpoveď od AI

Operátor super v Jave sa používa na prístup k metódam alebo konštruktorom základnej (rodičovskej) triedy z odvodené triedy.

Hlavné účely super:

  • Volanie konštruktora základnej triedy z konštruktora odvodené triedy, aby sa inicializovala časť objektu definovaná v rodičovi.
  • Volanie prepísanej metódy základnej triedy, ak je v odvodené triede potrebné doplniť alebo zmeniť správanie, pričom sa zachová časť logiky rodiča.

Príklad použitia konštruktora:

class Animal {
    String name;
    Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    Dog(String name) {
        super(name); // volanie konštruktora Animal
    }
}

Príklad volania metódy základnej triedy:

class Animal {
    void sound() {
        System.out.println("Niekto zvuk");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // volanie metódy základnej triedy
        System.out.println("Štekanie");
    }
}

Týmto spôsobom super pomáha riadiť dedičnosť a opätovné využívanie kódu základnej triedy.