Professional Documents
Culture Documents
(B8) Interface
(B8) Interface
INTERFACE
ThS. Nguyễn Quang Phúc
phucnq@uel.edu.vn
NO PAIN NO GAIN Kỹ Thuật Lập Trình 2
NỘI DUNG
1. Khái niệm Interface
2. Sử dụng Interface
3. Thực hiện nhiều Interface
4. Kiểm tra thực hiện Interface
5. Bài tập
NO PAIN NO GAIN Kỹ Thuật Lập Trình 3
1. Khái niệm
Interface là ràng buộc nhằm đảm bảo các lớp thực hiện nó phải
thực hiện đúng những gì đã được khai báo.
Interface cũng giống như một lớp nhưng chỉ chứa các khai báo
về biến lớp, thuộc tính, phương thức mà không có chi tiết thực
hiện các thành phần đó.
Lập trình viên có thể lựa chọn thực hiện một hay nhiều
interface hoặc không thực hiện interface nào. Nhưng nếu đã
chọn thực hiện interface thì phải thực hiện một cách đầy đủ.
NO PAIN NO GAIN Kỹ Thuật Lập Trình 4
2. Sử dụng Interface
Khai báo
Interface được khai báo giống như khai báo lớp, nhưng sử dụng
từ khóa interface với cú pháp:
public interface TênInterface
{
// Các thành phần
}
Ví dụ:
public interface ILamViec
{
string LamViec(string tenCongViec);
}
NO PAIN NO GAIN Kỹ Thuật Lập Trình 5
2. Sử dụng Interface
Thực hiện
Một lớp khai báo thực hiện interface bằng dấu hai chấm giống
như khai báo kế thừa từ lớp khác:
class TenLop : ITenInterface
NO PAIN NO GAIN Kỹ Thuật Lập Trình 6
2. Sử dụng Interface
Thực hiện
Ví dụ: khai báo lớp SinhVien và NhanVien thực hiện interface
ILamViec trong ví dụ trước:
public class SinhVien : ILamViec {
public string MSSV { get; set; }
public string HoTen { get; set; }
public SinhVien(string mssv, string hoTen)
{
MSSV = mssv;
HoTen = hoTen;
}
public string LamViec(string tenCongViec)
{
return string.Format("Sinh viên {0} đang {1}",
HoTen, tenCongViec);
}
}
NO PAIN NO GAIN Kỹ Thuật Lập Trình 7
2. Sử dụng Interface
Thực hiện
Ví dụ: khai báo lớp SinhVien và NhanVien thực hiện interface
ILamViec trong ví dụ trước:
public class NhanVien : ILamViec {
public string MaNV { get; set; }
public string HoTen { get; set; }
public string PhongBan { get; set; }
public NhanVien(string maNV, string hoTen, string phongBan){
MaNV = maNV;
HoTen = hoTen;
PhongBan = phongBan;
}
public string LamViec(string tenCongViec){
return string.Format("Nhân viên {0} phòng {1} đang {2}",
HoTen, PhongBan, tenCongViec);
}
}
NO PAIN NO GAIN Kỹ Thuật Lập Trình 8
2. Sử dụng Interface
Thực hiện
Ví dụ: khai báo lớp SinhVien và NhanVien thực hiện interface
ILamViec trong ví dụ trước:
static void Main(string[] args){
Console.OutputEncoding = Encoding.UTF8;
SinhVien svA = new SinhVien("SV1", "Trần Phạm Thanh Trà");
Console.WriteLine(svA.LamViec("Học Bài"));
NhanVien nvB = new NhanVien("NV2", "Trần Phạm Mẫn Nhi", "Nhân Sự");
Console.WriteLine(nvB.LamViec("Báo cáo dự án"));
Console.ReadLine();
}
NO PAIN NO GAIN Kỹ Thuật Lập Trình 9
2. Sử dụng Interface
Thực hiện
Sau khi có các lớp thực hiện interface, ta có thể tạo các đối tượng của
interface. Đối tượng interface tham chiếu đến đối tượng của lớp và có
thể truy xuất những thành phần của interface mà không cần thông qua
đối tượng của lớp:
static void Main(string[] args){
Console.OutputEncoding = Encoding.UTF8;
SinhVien svA = new SinhVien("SV1", "Cao Thị Ly");
ILamViec lv1 = svA;
Console.WriteLine(lv1.LamViec("Học bài"));
NhanVien nvB = new NhanVien("NV2", "Nguyễn Văn Kỳ", "Nhân Sự");
ILamViec lv2 = nvB;
Console.WriteLine(lv2.LamViec("Làm báo cáo"));
Console.ReadLine();
}
NO PAIN NO GAIN Kỹ Thuật Lập Trình 10
5. Bài tập
Tạo project WPF có giao diện như hình bên dưới, sdụng
Interface Icomparer có sẵn trong C# để thực hiện chức năng
sắp xếp
Q&A