Il polimorfismo è un concetto fondamentale nell'Orientamento agli Oggetti (OOP) che si riferisce alla capacità di un oggetto di apparire in molte forme o di essere trattato in modo diverso a seconda del contesto in cui viene utilizzato.
Il polimorfismo consente agli oggetti di essere trattati come istanze della loro classe di base o di una delle loro classi derivate, consentendo la sostituzione di oggetti di tipo diverso nella stessa interfaccia.
Ecco un esempio di polimorfismo in Java utilizzando il polimorfismo di sotto-tipo:
class Animale {
void suona() {
System.out.println("Suono generico dell'animale");
}
}
class Cane extends Animale {
void suona() {
System.out.println("Il cane abbaia");
}
}
class Gatto extends Animale {
void suona() {
System.out.println("Il gatto miagola");
}
}
public class Main {
public static void main(String[] args) {
Animale animale1 = new Cane();
Animale animale2 = new Gatto();
animale1.suona();
animale2.suona();
}
}
In questo esempio, l'oggetto animale1 è un'istanza della classe Cane e l'oggetto animale2 è un'istanza della classe Gatto. Tuttavia, entrambi possono essere trattati come oggetti di tipo Animale e chiamare il metodo suona() specifico della loro classe.