Interface – Khái niệm Interface có thể xem là ranh giới boundary mà đối tượng thực chia sẻ với thế giới bên ngoài Nếu như Inheritance thể hiện mối quan hệ “is a” thì Interface thể hiện
Trang 1Click to edit Master subtitle style
INTERFACE
Trang 2Interface – Khái niệm
Trang 3INTERFACE – KHÁI NIỆM
Trang 4Interface – Khái niệm
Interface có thể xem là ranh giới (boundary)
mà đối tượng thực chia sẻ với thế giới bên
ngoài
Nếu như Inheritance thể hiện mối quan hệ “is
a” thì Interface thể hiện mối quan hệ “can do”
Trong thế giới thực, ta có thể thấy Inferace xuất hiện ở nhiều nơi: ở Tivi, xe hơi,
Trang 5Interface – Khái niệm
Người dùng sử dụng Tivi thông qua thao tác các nút điều chỉnh (chỉnh âm lượng, chỉnh kênh )
Trang 6Interface – Khái niệm
Người lái xe sử dụng vô lăng, bàn đạp chân gas,
bàn đạp thắng, để điều khiển xe hơi của mình
Trang 7Interface – Khái niệm
tự nhau về mặt tổng quan (VD: Các loại xe
Trang 8ĐỊNH NGHĨA INTERFACE
Trang 9Trong C#, Interface bao gồm các thành viên cơ bản: thuộc tính (properties), phương thức (methods), sự kiện (events) và indexers
Trang 10}
Trang 12Định nghĩa Interface
Nhận xét:
Tất cả các phương thức (methods) ở trên đều
không có phần hiện thực (implementation)
Không cần từ khóa virtual trước tên phương
thức
Không cần phải khai báo tầm vực (vd: public, protected, private, ) trước tên phương thức
Mặc định tất cả members đều public/virtual
Nên có từ khóa I trước tên Interface
Trang 13HIỆN THỰC INTERFACE
Trang 14Hiện thực Interface
Nếu chỉ định nghĩa Interface thì ta vẫn chưa sử dụng được các chức năng mong muốn
Cần xây dựng các lớp “hiện thực” interface để
có thể sử dụng được các thành viên trong interface tương ứng (VD: Các thiết bị linh kiện
và xử lý chi tiết bên trong Tivi ứng với từng nút)
Cú pháp “hiện thực” interface tương tự như khi thừa kế dùng dấu hai chấm “:” + tên Interface
Hiện thực chi tiết các thành viên của Interface
Trang 16Hiện thực Interface
Trang 18Hiện thực Interface
class Program {
static void Main(string[] args)
{
//Create 2 thing that can fly
IFlyable[] FlyThings = new IFlyable[2];
FlyThings[0] = new Bird();
FlyThings[1] = new Plane();
for (int i = 0; i < FlyThings.Length; i++)
FlyThings[i].Fly();
}
}
Trang 20} }
public void Write(string filename) {
Console.WriteLine(filename);
} }
Trang 21} }
public void Write(string filename) {
Trang 22fileWriters[1] = new DocxFileWriter();
foreach (IFileWriter fileWriter in fileWriters) {
fileWriter.Write(fileWriter.Extension);
}
}
}
Trang 23NHIỀU INTERFACE – THỪA KẾ
Trang 24Nhiều Interface – thừa kế
Khi hiện thực nhiều Interface phải hiện thực tất
Trang 25Nhiều Interface – thừa kế
public interface IRunnable
Trang 26Nhiều Interface – thừa kế
Console.WriteLine("Swimming ");
} }
Lớp hiện thực 2 Interfaces trên cần phải chứa hiện thực
Trang 27Nhiều Interface – thừa kế
Trang 28Giới thiệu về Interface
Cách định nghĩa và hiện thực Interface
Hiện thực nhiều Interface và thừa kế
Bài tập
TÓM TẮT