Override dei metodi
Imparare come le sottoclassi ridefiniscono i metodi della classe genitore per modificare o estendere il comportamento.
Override dei metodi è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 3 lezioni in totale.
Override dei metodi
Override dei metodi significa ridefinire un metodo della classe genitore in una sottoclasse. Il metodo ha lo stesso nome, gli stessi parametri e lo stesso tipo restituito, ma un nuovo corpo. In questo modo ogni sottoclasse può fornire un comportamento specifico.
Perché eseguire l'override?
L'override permette di personalizzare il comportamento. Ad esempio, Dog e Cat sono entrambi Animal, ma ciascuno produce un suono diverso. Invece di scrivere nuovi nomi di metodo, eseguono l'override dello stesso metodo per mantenere un utilizzo coerente.
Regole per l'override
Regole: la firma del metodo deve corrispondere esattamente, il tipo restituito deve essere compatibile e il livello di accesso non può essere più restrittivo. Utilizzi l'annotazione @Override per individuare gli errori in fase di compilazione.
Utilizzo di super.method()
È comunque possibile chiamare il metodo della classe padre con super.method(). In questo modo si può estendere il comportamento invece di sostituirlo completamente, combinando la logica precedente con quella nuova in un'unica chiamata.
Errori
Errori: modificare i tipi dei parametri crea un overloading, non un overriding. Dimenticare @Override può nascondere gli errori di battitura. Evitate inoltre di restringere l'accesso, ad esempio da public a private, perché ciò causa errori di compilazione.
Codice: esempio di overriding
Codice: Dog e Cat eseguono l'override di speak() definito in Animal. Anche quando il riferimento è di tipo Animal, viene eseguita la versione della sottoclasse, mostrando il vero polimorfismo.
public class Main {
static class Animal {
void speak() {
System.out.println("Some generic animal sound");
}
}
static class Dog extends Animal {
@Override
void speak() {
System.out.println("Woof!");
}
}
static class Cat extends Animal {
@Override
void speak() {
System.out.println("Meow!");
}
}
public static void main(String[] args) {
Animal a1 = new Dog(); // upcast to Animal
Animal a2 = new Cat();
a1.speak(); // runs Dog version
a2.speak(); // runs Cat version
}
}
Verifica dell'overriding
Verifica rapida: che cosa consente di fare l'overriding a una sottoclasse?
Riepilogo
Riepilogo: l'overriding ridefinisce i metodi con la stessa firma, permettendo alle sottoclassi di personalizzare il comportamento. Usate @Override e chiamate super quando necessario.
Domande Frequenti
La lezione «Override dei metodi» è gratuita?
Sì — il testo completo di «Override dei metodi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 3 lezioni in totale.
Cosa imparerò in «Override dei metodi»?
Imparare come le sottoclassi ridefiniscono i metodi della classe genitore per modificare o estendere il comportamento. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Override dei metodi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- extends e super
- Override dei metodi
- Polimorfismo e binding dinamico