Guida al C#
Capitolo 14° - Polimorfismo Eredt ed Overloading
In questo capitolo parleremo del Polimorfismo, ereditarietà ed Overloading. class ClasseBase { //Membri della classe } class Eredita : ClasseBase { //Membri della classe Eriditata e della nuova classe } Ereditando una classe Base avremo dopo tutti i mebri della classe base nella nuova classe ereditata. un piccolo esempio Ereditando una classe Base avremo dopo tutti i mebri della classe base nella nuova classe ereditata. Presumiamo che abbiamo una libreria, e che l'autore della libreria vuole creare un controllo, e dà accesso all'utente finale la possibilità Il programmatore della libreria, crea un metodo interno virtuale che dà unicamente la possibilità di addizionare due valori. public class Libreria { private int totale; public virtual void Calcola(int num1,int num2) { totale = num1 + num2; } } Avendo un void di tipo Virtual nella libreria possiamo ereditare la classe con la suddetta funzione e modificarne il comportamento. public class Programma : Libreria { public int totale; public override void Calcola(int num1,int num2) { totale = (num1 + num2) * 2; } } Esempio di overloading con Polimorfismo In questo caso, la Libreria ci dà si la possibilità di effettuare un calcolo. public class Libreria { private int totale; public virtual void Calcola(int num1,int num2) { totale = num1 + num2; } public void Stampa() { Console.WriteLine(totale.ToString()); } } public class Strumento : Libreria { public int Totale {get; set;} public override void Calcola(int num1,int num2) { Totale = (num1 + num2) * 2; } } Richiamando la funzione class Program { static void Main(string[] args) { Libreria lib = new Libreria(); Strumento strum = new Strumento(); lib.Calcola(5,5); //Calcola ma non da un risultato a noi. //Calcola tramite la funzione ereditata ed del void Calcola //modificato strum.Calcola(5,5); int risultato = strum.Totale; Console.ReadKey(); } } Cos'è un Overload invece? Un overload ci permette di avere lo stesso motodo ma con diversi paremetri. //Esempio di overload //Questo metodo accetta solo un intero public void Stampa(int numero) { Console.WriteLine(numero.ToString()); } //Questo metodo accetta solo una stringa public void Stampa(string valore) { Console.WriteLine(valore); } In questo modo, possiamo usare lo stesso void ma inviare valori nel parametro diverso esempio: Stampa(10); Stampa("Ciao");
VB.NET, C#, C++, PHP, MySQL, Javascript , LUA,Infarinatura di Python e Ruby, Grafica Vettoriale (Esperto di CorelDraw)
DirectX 9 e XNA Game Studio, Silverlight, jquery, Autoit e Android.
Esperto in Unity e Buona conoscenza di Blender.
Esperto C# UI Designer
Ottima conoscenza sulle tecnologie PBR.
Assembly? Sto imparando...
|