Tải bản đầy đủ (.ppt) (13 trang)

Bai 07 abstract vs interface trong lập trình C sharp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (171.08 KB, 13 trang )

Lớp trừu tượng và giao diện


 Ô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


 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


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();


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


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



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


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


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


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



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)


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


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




×