Upcasting và Downcasting:
Nâng cấp: Truyền từ Lớp gốc sang Lớp Cơ sở Hạ cấp: Truyền từ Lớp Cơ sở sang Lớp gốc
Hãy hiểu tương tự như một ví dụ:
Hãy xem xét hai lớp Shape là lớp cha của tôi và Circle là lớp Bắt nguồn, được định nghĩa như sau:
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; }
}
Dự báo:
Shape s = new Shape ();
Đường tròn c = s;
Cả c và s đều tham chiếu đến cùng một vị trí bộ nhớ, nhưng cả hai đều có các khung nhìn khác nhau, tức là sử dụng tham chiếu "c" bạn có thể truy cập tất cả các thuộc tính của lớp cơ sở và lớp dẫn xuất nhưng sử dụng tham chiếu "s" bạn có thể truy cập thuộc tính của lớp cha duy nhất.
Một ví dụ thực tế về upcasting là lớp Stream là lớp cơ sở của tất cả các loại trình đọc luồng của khung .net:
Trình đọc StreamReader = new StreamReader (FileStreamReader mới ());
ở đây, FileStreamReader () được đưa lên để tạo lập trình liên tục.
Hạ cấp:
Hình dạng s = new Circle (); ở đây như đã giải thích ở trên, chế độ xem của s là đơn vị cha mẹ duy nhất, để tạo nó cho cả phụ huynh và trẻ em, chúng ta cần phải bỏ qua
var c = (Vòng tròn) s;
Ví dụ thực tế của Downcasting là lớp nút của WPF.
Employee emp= mgr;
nên đủ.