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 đặtchỉ 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 abst
Trang 1Lớp trừu tượng và giao diện
Trang 2 Ôn tập lại bài cũ
• Lớp và đối tượng
• Constructor và Destructor
• Garbage Collector
• 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
Trang 3Subject name / Session# / 3 of Totalpage
Nội dung trình bày
• 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
Trang 4Lớ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();
Trang 5 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
Lớp trừu tượng và giao diện
Trang 6 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
Lớp trừu tượng và giao diện
Trang 7 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
Lớp trừu tượng và giao diện
Trang 8• Cú pháp khai báo:
• Chú ý nếu interface đặt trong một lớp thì phải đặt từ khóa public trước interface
Lớp trừu tượng và giao diện
interface IFile
{ int delFile();
void disFile();
}
Trang 9 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
Lớp trừu tượng và giao diện
Trang 10 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
Lớp trừu tượng và giao diện
Trang 11 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)
Lớp trừu tượng và giao diện
Trang 12 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
Lớp trừu tượng và giao diện
Trang 13 Tổng kết
• 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
Lớp trừu tượng và giao diện