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 1Bài 7 Lớ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
• 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
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
• 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
Lớp trừu tượng và giao diện