Il polimorfismo è una delle tre caratteristiche della programmazione
ad oggetti (OOP).
Il polimorfismo è la funzionalità che permette di utilizzare un'unica interfaccia per un'intera classe di azioni.
Insieme all'ereditarietà è uno dei punti di forza del framework.NET.
Ecco come implementarlo in C# con una classe astratta:
Analizzando le classi abiamo:codice:using System; /// <summary> /// Prova di virtual e override /// </summary> public abstract class Animale {/* ecco la superclasse */ public virtual void saluta(){ Console.WriteLine("Ciao, sono un animale\n"); } } public class Cane:Animale {/* ecco la derivata */ public override void saluta() { Console.WriteLine("Ciao, sono un cane\n"); } } public class Gatto:Animale {/* ecco la derivata */ public override void saluta() { Console.WriteLine("Ciao, sono un gatto\n"); } } public class Test { public static void Main() { Cane bau = new Cane(); Gatto miao = new Gatto(); bau.saluta(); miao.saluta(); } }
* la classe Animale , contrassegnata da abstract che è la nostra superclasse base
* la classe Cane derivata da Animnale
* la classe Gatto derivata da Animale
Analizzando le funzioni abbiamo:
* la funzione saluta() di Animale contrassegnata da virtual
* la funzione saluta() di Cane contrassegnata da override
* la funzione saluta() di Gatto contrassegnata da override
Conclusione:
Le funzioni che noi dichiariamo dentro una classe astrata con la parola riservata virtual,
sono soggette a polimorfismo.
Questo è ottenuto reimplementando la stessa funzione della classe di base in una classe derivata e sostituendo virtual con override.
N.B-->La funzione ereditata e contrassegnata con override nn dovra combiare ne il tipo restituito ne gli argomentii

