(+84) 236.3827111 ex. 402

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;