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

praticamente è identica anche la terminologia e definirlo "uno dei punti di forza del framework.NET" mi sembra una fesseria dato ke la microzoz ha fatto sua una tecnologia di sun, la microsoft ke ora sta cercando di eliminare java da windows con costose azioni legali contro sun.... bella roba
