Sobes.tech
Junior — Middle

Qual è la funzione dell'operatore super nel contesto dell'ereditarietà e della chiamata ai metodi o ai costruttori della classe base?

sobes.tech AI

Risposta dell'AI

L'operatore super in Java viene utilizzato per accedere ai metodi o ai costruttori della classe base (padre) da una sottoclasse.

Principali utilizzi di super:

  • Chiamare il costruttore della classe base dal costruttore della sottoclasse per inizializzare la parte dell'oggetto definita nel genitore.
  • Chiamare un metodo sovrascritto della classe base se nella sottoclasse si desidera integrare o modificare il comportamento, mantenendo parte della logica del genitore.

Esempio di utilizzo del costruttore:

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

class Dog extends Animal {
    Dog(String name) {
        super(name); // chiamata al costruttore di Animal
    }
}

Esempio di chiamata a un metodo della classe base:

class Animal {
    void sound() {
        System.out.println("Suono generico");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // chiamata al metodo della classe base
        System.out.println("Abbaio");
    }
}

In questo modo, super aiuta a gestire l'ereditarietà e il riutilizzo del codice della classe base.