Các kiểu đa hình (interface) trong lập trình hướng đối tượng trên C#
Giả sử có interface ILamThem, có phương thức trừu tượng LamThem( ). Lớp NhanVien là lớp cha.
Trong lớp danh sách có phương thức tính TongLamThem( )
vì lớp cha không có phương thức LamThem( ) mà chỉ có ở 2 lớp con nên ta có các kiểu đa hình như sau để lấy được phương thức LamThem ở 2 lớp con
public double tongLamThem()
{
double tongLT = 0;
foreach (NhanVien x in DS.Values)
{
//cach 1
//if (x is NhanVienBC)
// tongLT = tongLT + ((NhanVienBC)x).LamThem();
//else if(x is NhanVienHD
// tongLT = tongLT + ((NhanVienHD)x).LamThem();
//cach 2
//ILamThem n = x as ILamThem;
//tongLT = tongLT + n.LamThem();
//cach 3
//tongLT = tongLT + ((ILamThem)x).LamThem();
//cach 4
if (x is ILamThem y)
tongLT = tongLT + y.LamThem();
}
return tongLT;