Upcasting und Downcasting:
Upcasting: Casting von der abgeleiteten Klasse zur Basisklasse Downcasting: Casting von der Basisklasse zur abgeleiteten Klasse
Lassen Sie uns das gleiche als Beispiel verstehen:
Betrachten Sie zwei Klassen Shape als meine übergeordnete Klasse und Circle als abgeleitete Klasse, die wie folgt definiert sind:
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:
Form s = neue Form ();
Kreis c = s;
Sowohl c als auch s verweisen auf denselben Speicherort, aber beide haben unterschiedliche Ansichten. Mit der Referenz "c" können Sie auf alle Eigenschaften der Basisklasse und der abgeleiteten Klasse zugreifen, aber mit der Referenz "s" können Sie auf Eigenschaften zugreifen der einzigen Elternklasse.
Ein praktisches Beispiel für Upcasting ist die Stream-Klasse, die eine Grundklasse aller Arten von Stream-Readern des .net-Frameworks darstellt:
StreamReader reader = neuer StreamReader (neuer FileStreamReader ());
Hier wird FileStreamReader () auf streadm reder übertragen.
Downcasting:
Form s = neuer Kreis (); Wie oben erläutert, ist die Ansicht von s der einzige Elternteil. Um sie sowohl für Eltern als auch für ein Kind zu erstellen, müssen wir sie herunterstoßen
var c = (Kreis) s;
Das praktische Beispiel für Downcasting ist die Button-Klasse von WPF.
Employee emp= mgr;
ausreichen.