Upcasting et Downcasting:
Upcasting: diffusion de la classe dérivée à la classe de base Downcasting: diffusion de la classe de base à la classe dérivée
Comprenons la même chose comme exemple:
Considérez deux classes Shape comme ma classe parent et Circle comme une classe dérivée, définie comme suit:
class Shape
{
public int Width { get; set; }
public int Height { get; set; }
}
class Circle : Shape
{
public int Radius { get; set; }
public bool FillColor { get; set; }
}
Upcasting:
Forme s = nouvelle forme ();
Cercle c = s;
Les deux c et s font référence au même emplacement de mémoire, mais les deux ont des vues différentes, c'est-à-dire qu'en utilisant la référence "c", vous pouvez accéder à toutes les propriétés de la classe de base et de la classe dérivée, mais en utilisant la référence "s", vous pouvez accéder aux propriétés de la seule classe parente.
Un exemple pratique d'upcasting est la classe Stream qui est la classe de base de tous les types de lecteur de flux du framework .net:
Lecteur StreamReader = nouveau StreamReader (nouveau FileStreamReader ());
ici, FileStreamReader () est converti en streadm reder.
Downcasting:
Forme s = nouveau cercle (); ici comme expliqué ci-dessus, la vue de s est le seul parent, afin de le rendre à la fois pour le parent et pour un enfant, nous devons le réduire
var c = (cercle) s;
L'exemple pratique de Downcasting est la classe de bouton de WPF.
Employee emp= mgr;
devrait donc suffire.