Upcasting ve Downcasting:
Upcasting: Türetilmiş Sınıftan Temel Sınıfa Döküm: Temel Sınıftan Türetilmiş Sınıfa Döküm
Aynı şeyi bir örnekle anlayalım:
Shape olarak iki sınıfı, My parent sınıfı olarak ve Circle'ı da Türetilmiş bir sınıf olarak aşağıdaki gibi tanımlayın:
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:
Şekil s = yeni Şekil ();
Daire c = s;
Hem c hem de s aynı bellek konumuna başvuruyor, ancak her ikisinin de farklı görünümleri var, yani "c" referansını kullanarak temel sınıfın ve türetilmiş sınıfın tüm özelliklerine erişebilirsiniz, ancak "s" referansını kullanarak özelliklere erişebilirsiniz. tek ebeveyn sınıfının.
Yukarı yayınlamanın pratik bir örneği, .net çerçevesinin tüm akış okuyucu türlerinin temel sınıfı olan Stream sınıfıdır:
StreamReader okuyucu = new StreamReader (yeni FileStreamReader ());
burada, FileStreamReader () streadm rederine yükseltilir.
Downcasting:
Şekil s = yeni Daire (); burada yukarıda açıklandığı gibi, s'nin görünümü tek ebeveyndir, bunu hem ebeveyn hem de çocuk için yapmak için onu aşağıya indirmemiz gerekir.
var c = (Daire) s;
Downcasting'in pratik örneği, WPF'nin düğme sınıfıdır.
Employee emp= mgr;
yeterli olmalı.