Upcasting dan Downcasting:
Upcasting: Casting dari Derived-Class ke Base Class Downcasting: Casting dari Base Class ke Derived Class
Mari kita pahami sama seperti contoh:
Pertimbangkan dua kelas Shape as My parent class dan Circle as a Derived class, yang didefinisikan sebagai berikut:
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:
Bentuk s = Bentuk baru ();
Lingkaran c = s;
Baik c dan s merujuk ke lokasi memori yang sama, tetapi keduanya memiliki tampilan yang berbeda, yaitu menggunakan referensi "c", Anda dapat mengakses semua properti kelas dasar dan kelas turunan juga, tetapi menggunakan referensi "s" Anda dapat mengakses properti dari satu-satunya kelas induk.
Contoh praktis upcasting adalah kelas Stream yang merupakan kelas dasar dari semua jenis pembaca aliran kerangka .net:
Pembaca StreamReader = StreamReader baru (FileStreamReader baru ());
di sini, FileStreamReader () diubah menjadi streadm reder.
Downcasting:
Bentuk s = Lingkaran baru (); di sini seperti yang dijelaskan di atas, view of s adalah satu-satunya parent, untuk membuatnya baik untuk parent maupun child kita perlu downcast nya
var c = (Lingkaran) s;
Contoh praktis dari Downcasting adalah kelas tombol WPF.
Employee emp= mgr;
seharusnya sudah cukup.