Cos'è il polimorfismo nella programmazione?
sobes.tech AI
Risposta dell'AI
Il polimorfismo è la capacità di oggetti di classi diverse di rispondere in modo diverso alla stessa chiamata di metodo. Si ottiene attraverso l'uso di ereditarietà, classi astratte e interfacce. In C#, il polimorfismo si manifesta attraverso la sovrascrittura (overriding) dei metodi della classe base nelle classi derivate e tramite l'overloading dei metodi.
Esempi di polimorfismo:
-
Sovrascrittura dei metodi (Polimorfismo in runtime): La classe derivata fornisce la propria implementazione di un metodo dichiarato nella classe base. Per fare ciò, nella classe base si usa la parola chiave
virtual, e nella derivataoverride.// Classe base class Shape { // Metodo virtuale che può essere sovrascritto public virtual void Draw() { // Implementazione di default } } // Classe derivata 1 class Circle : Shape { // Sovrascrittura del metodo Draw public override void Draw() { // Implementazione per il cerchio } } // Classe derivata 2 class Square : Shape { // Sovrascrittura del metodo Draw public override void Draw() { // Implementazione per il quadrato } }In questo caso, si può creare una lista di oggetti
Shapee chiamare il metodoDrawper ciascuno, e verrà chiamata l'implementazione specifica per ogni tipo di figura. -
Overloading dei metodi (Polimorfismo in compile-time): Diversi metodi con lo stesso nome, ma con firme diverse (numero o tipi di parametri) nella stessa classe.
class Calculator { // Metodo sovraccaricato Add (per int) public int Add(int x, int y) { return x + y; } // Metodo sovraccaricato Add (per double) public double Add(double x, double y) { return x + y; } }
Il polimorfismo favorisce la creazione di codice più flessibile, estensibile e di facile manutenzione. Permette di scrivere codice generico che può lavorare con oggetti di diversi tipi.