Sobes.tech
Junior — Middle

Jaka jest funkcja operatora super w kontekście dziedziczenia i wywoływania metod lub konstruktorów klasy bazowej?

sobes.tech AI

Odpowiedź od AI

Operator super w Javie jest używany do odwoływania się do metod lub konstruktorów klasy bazowej (rodzica) z podklasy.

Główne zastosowania super:

  • Wywołanie konstruktora klasy bazowej z konstruktora podklasy, aby zainicjalizować część obiektu zdefiniowaną w rodzicu.
  • Wywołanie nadpisanej metody klasy bazowej, jeśli w podklasie trzeba uzupełnić lub zmienić zachowanie, zachowując część logiki rodzica.

Przykład użycia konstruktora:

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

class Dog extends Animal {
    Dog(String name) {
        super(name); // wywołanie konstruktora Animal
    }
}

Przykład wywołania metody klasy bazowej:

class Animal {
    void sound() {
        System.out.println("Jakiś dźwięk");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // wywołanie metody klasy bazowej
        System.out.println("Szczekanie");
    }
}

W ten sposób super pomaga zarządzać dziedziczeniem i ponownym użyciem kodu klasy bazowej.