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