
GUIDE PER ASPIRANTI PROGRAMMATORI
Polimorfismo in Java
Il polimorfismo, che letteralmente significa “molte forme”, è la capacità di un oggetto di assumere molte forme diverse. In OOP, si riferisce alla capacità di una classe di fornire diverse implementazioni di metodi che sono definiti in una classe base o in un’interfaccia. Ci sono due tipi principali di polimorfismo Polimorfismo di Overloading:…


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
Il polimorfismo, che letteralmente significa “molte forme”, è la capacità di un oggetto di assumere molte forme diverse. In OOP, si riferisce alla capacità di una classe di fornire diverse implementazioni di metodi che sono definiti in una classe base o in un’interfaccia.
Ci sono due tipi principali di polimorfismo
- Polimorfismo di Overloading: Si verifica quando due o più metodi nella stessa classe hanno lo stesso nome ma parametri diversi.
- Polimorfismo di Overriding: Si verifica quando una sottoclasse fornisce una specifica implementazione di un metodo che è già fornito dalla sua classe base.
Esempio per polimorfismo di Overloading
public class Animale { public void faiRumore() { System.out.println("Questo animale fa un suono."); } public void faiRumore(String suono) { System.out.println("Questo animale fa: " + suono); } }
In questo caso, la classe Animale ha due metodi faiRumore(), uno senza parametri e l’altro con un parametro String.
Esempio per polimorfismo di Overriding
Partiamo dalla classe base ‘Animale’
public class Animale { public void faiRumore() { System.out.println("Questo animale fa un suono."); } }
Sottoclassi ‘Cane’ e ‘Gatto’
public class Cane extends Animale { @Override public void faiRumore() { System.out.println("Il cane fa: Bau Bau!"); } } public class Gatto extends Animale { @Override public void faiRumore() { System.out.println("Il gatto fa: Miao Miao!"); } }
Ora creiamo istanze di Cane e Gatto e le usiamo polimorficamente come Animale.
public class TestPolimorfismo { public static void main(String[] args) { Animale animale1 = new Cane(); Animale animale2 = new Gatto(); animale1.faiRumore(); // Stampa: Il cane fa: Bau Bau! animale2.faiRumore(); // Stampa: Il gatto fa: Miao Miao! } }
In questo esempio, anche se animale1 e animale2 sono di tipo Animale, il metodo faiRumore() che viene chiamato è quello definito nella classe dell’oggetto effettivo (Cane o Gatto), non quello nella classe Animale.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.