L'override in Java è un concetto che consente a una classe figlia di fornire una propria implementazione di un metodo ereditato dalla classe genitore. Questo permette di personalizzare il comportamento del metodo in base alle esigenze della classe figlia.
L'override è il processo mediante il quale un metodo definito in una classe figlia ha lo stesso nome, lo stesso tipo di ritorno e lo stesso elenco di parametri di un metodo definito nella classe genitore. L'implementazione del metodo nella classe figlia sostituisce l'implementazione della classe genitore.
Ecco un esempio di override in Java:
class Veicolo {
void suonareClacson() {
System.out.println("Beep beep");
}
}
class Auto extends Veicolo {
void suonareClacson() {
System.out.println("Honk honk");
}
}
public class Main {
public static void main(String[] args) {
Veicolo veicolo = new Veicolo();
veicolo.suonareClacson(); // Output: Beep beep
Veicolo auto = new Auto();
auto.suonareClacson(); // Output: Honk honk
}
}
Nell'esempio sopra, la classe Auto estende la classe Veicolo e ne ridefinisce il metodo suonareClacson(). Quando si chiama il metodo suonareClacson() sull'oggetto di tipo Auto, viene eseguita l'implementazione definita nella classe Auto anziché quella nella classe Veicolo.