Il polimorfismo, derivato dal greco "poli" (molti) e "morphé" (forma), è un concetto fondamentale nella programmazione orientata agli oggetti (OOP) che permette a un'entità (come un oggetto, una variabile o una funzione) di assumere diverse forme o comportamenti. In altre parole, una stessa interfaccia può essere utilizzata per classi diverse.
Tipi di Polimorfismo:
Esistono principalmente due tipi di polimorfismo:
Polimorfismo Statico (Compile-time Polymorphism): Questo tipo di polimorfismo viene risolto al momento della compilazione. I due meccanismi principali che lo implementano sono:
Calcolatrice
potrebbe avere metodi somma(int a, int b)
e somma(double a, double b)
.Polimorfismo Dinamico (Runtime Polymorphism): Questo tipo di polimorfismo viene risolto durante l'esecuzione del programma. Il meccanismo principale che lo implementa è:
Vantaggi del Polimorfismo:
Esempio Concettuale:
Immaginiamo di avere una classe base Forma
con un metodo calcolaArea()
. Possiamo avere sottoclassi come Cerchio
, Quadrato
e Triangolo
, ognuna con la propria implementazione del metodo calcolaArea()
. Il polimorfismo ci permette di trattare tutti questi oggetti come oggetti di tipo Forma
e chiamare il metodo calcolaArea()
su di essi, sapendo che verrà eseguita l'implementazione specifica per ogni tipo di forma.