Bài giảng C# và môi trường Donet - Bài 7: Lớp trừu tượng và giao diện

ppt 13 trang ngocly 1800
Bạn đang xem tài liệu "Bài giảng C# và môi trường Donet - Bài 7: Lớp trừu tượng và giao diện", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_c_va_moi_truong_donet_bai_7_lop_truu_tuong_va_giao.ppt

Nội dung text: Bài giảng C# và môi trường Donet - Bài 7: Lớp trừu tượng và giao diện

  1. Bài 7 Lớp trừu tượng và giao diện
  2. ▪ Ôn tập lại bài cũ • Lớp và đối tượng • Constructor và Destructor • Garbage Collector • Phương thức(Method) • Chồng phương thức(Method Overloading) • Chông toán tử(Operator Overloading) • Access modifier (phạm vi truy xuất) • Từ khóa ref và out
  3. ▪ Nội dung trình bày • Phương thức trừu tượng • Lớp cơ sở trừu tượng(Abstract base class) • Interface(giao diện) • Multiple Interface • Explicit Interface • Interface Inheritance • Tại sao lại dùng interface • So sánh abstract base class và Interface Subject name / Session# / 3 of Totalpage
  4. Lớp trừu tượng và giao diện ▪ Phương thức trừu tượng • Là phương thức mà không có phần cài đặt(chỉ có phần khai báo nguyên mẫu mà không có phần thân) • Cú pháp để khai báo: đặt từ kháo abstract trước phần khai báo phương thức(không viết thân phương thức) • Ví dụ: // chú ý là không có phần thân phương thức public abstract void someMethod();
  5. Lớp trừu tượng và giao diện ▪ Lớp trừu tượng • Lớp trừu tượng là lớp gồm 1 hoặc nhiều phương thức trừu tượng • Không thể khởi tạo đối tượng cho lớp trừu tượng // Ví dụ câu lệnh sau sẽ có lỗi MyAbstractClass a1 = new MyAbstractClass(); • Một lớp khác sẽ cài đặt các phương thức trong lớp trừu tượng • Ví dụ DEMO lớp trừu tượng
  6. Lớp trừu tượng và giao diện ▪ Khi nào thì sử dụng phương thức trừu tượng và lớp trừu tượng? • Khi hai hoặc nhiều lớp muốn cài đặt các phương thức cùng tên nhưng mỗi phương thức trong một lớp lại thực hiện các công việc khác nhau(tính đa hình). − Các lớp này sẽ kế thừa và cài đặt các phương thức trong lớp cơ sở • Trong lập trình hướng đối tượng, lớp trừu tượng thường được đặt ở mức đỉnh trong sơ đồ cây phân cấp các lớp kề thừa
  7. Lớp trừu tượng và giao diện ▪ Interface là gì? • Là lớp trừu tượng hoàn toàn có nghĩa là chỉ chứa các abstract method • Không thể khởi tạo đối tượng cho Interface • Một interface có thể nằm trong một namspace, nằm trong một class(nếu nằm trong class thì phải đặt là public) • Trong interface chỉ gồm các thành phần: − Abstract method − Properties − Indexers − Event
  8. Lớp trừu tượng và giao diện • Cú pháp khai báo: interface IFile { int delFile(); void disFile(); } • Chú ý nếu interface đặt trong một lớp thì phải đặt từ khóa public trước interface
  9. Lớp trừu tượng và giao diện ▪ Cài đặt interface • Interface được cài đặt bởi lớp • Một lời cài đặt interface thì phải cài đặt tất cả các phương thức trong lớp đó • Cú pháp: • Ví dụ DEMO
  10. Lớp trừu tượng và giao diện ▪ Multiple Interface • Ngôn ngữ C# cho phép một lớp cài đặt nhiều Interface ▪ Explicit Interface • Khi 1 lớp mà cài đặt interface có 2 phương thức giống nhau thì phải chỉ ra tên interface chưa phương thức cần cài đặt. ▪ Interface Inherintace: Một interface có thể kế thừa nhiều Interface • Ví dụ DEMO về Multiple interface và Explicit Interface
  11. Lớp trừu tượng và giao diện ▪ Tại sao lại dùng interface • Có được các lớp không có quan hệ với nhau cùng cài đặt các phương thức giống nhau • Sử dụng đa kế thừa • Che dấu thông tin(encapsulation)
  12. Lớp trừu tượng và giao diện ▪ So sánh Abstract base class và Interface • Tất cả các phương thức trong interface là abstract method, trong khi đó phương thức trong abstract base class là abstract method • Trong lớp Abstract base class có thể chứa các fields, constructor, destructor, trong khi đó interface thì không • Không thể tạo đối tượng(Instantiating object) của Abstract class và Interface
  13. Lớp trừu tượng và giao diện ▪ Tổng kết • Phương thức trừu tượng • Lớp cơ sở trừu tượng(Abstract base class) • Interface(giao diện) • Multiple Interface • Explicit Interface • Interface Inheritance • Tại sao lại dùng interface • So sánh abstract base class và Interface