Dùng Interface trong C# thay thế cho Đa hình Dowcasting
ví dụ về Hàm tính tổng quỹ lương trong phần mềm C#
// Nhân Viên Biên Chế / Nhân Viên Hợp Đồng là thừa kế từ lớp Nhân Viên và thực thi Interface ILuong
public double TongQuyLuong(){
double TongQuyLuong = 0;
foreach(NhanVien item in danhsach.Values){
//Cách 1 // theo interface
ILuong iL = item as ILuong;
TongQuyLuong = TongQuyLuong + iL.TinhThucLinh();
//Cách 2 // dowcasting
//if (item is NhanVienBienChe)
// TongQuyLuong = TongQuyLuong + ((NhanVienBienChe)item).TinhThucLinh();
//else if (item is NhanVienHopDong)
// TongQuyLuong = TongQuyLuong + ((NhanVienHopDong)item).TinhThucLinh();
}
return TongQuyLuong;
}