Chương 8 Interface (giao diện)

• Giao diện là một dạng của lớp trừu tượng, được sử dụng nhằm hỗ trợ tính đa hình. • Giao diện chỉ có các nguyên mẫu phương thức thuộc tính, chỉ mục. • Tất cả các thành phần khai báo trong giao diện mặc định là public (nên không có từ khóa về mức độ truy cập trong khai báo các thuộc tính và phương thức)

pdf14 trang | Chia sẻ: lylyngoc | Lượt xem: 1420 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Chương 8 Interface (giao diện), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Interface (Giao Diện) Môn Lập Trình Hướng Đối Tượng – Chương 8 Nguyễn Minh Thành [M] : Thanhnm@itc.edu.vn 1 Nội Dung 1. Định nghĩa giai diện 2. Khai báo giao diện 3. Thực thi nhiều giao diện 2 Định Nghĩa • Giao diện là một dạng của lớp trừu tượng, được sử dụng nhằm hỗ trợ tính đa hình. • Giao diện chỉ có các nguyên mẫu phương thức thuộc tính, chỉ mục. • Tất cả các thành phần khai báo trong giao diện mặc định là public (nên không có từ khóa về mức độ truy cập trong khai báo các thuộc tính và phương thức) • Khi một lớp kế thừa một giao diện ta nói rằng lớp đó thực thi (Implement) giao diện, và phải cài đặt tất cả các khai báo trong giao diện. 3 Cú pháp [MứcĐộTruyCập] Interface TênGiaoDiện [: GiaoDiệnCơ Sở] { //Nội dung giao diện } • Trong đó: ▫ [MứcĐộTruyCập] : thường là public; ▫ [: GiaoDiệnCơ Sở] : danh sách các Interface khác mà nó kế thừa, mỗi Interface các nhau bởi dấu phẩy (,) 4 Ví dụ public interface IPlayerManager { public void PlayMusic(); public void PauseMusic(); public void Stop(); public int OnOff // thuộc tính của Interface { get ; } } 5 Ví dụ (tt) public interface IPlayerManager { void PlayMusic(); void PauseMusic(); void Stop(); int OnOff // thuộc tính của Interface { get ; } } // Error ? 6 Ví dụ (tt) public class Player : IPlayerManager { int _Switch; public void PlayMusic() { Console.WriteLine(“Music is playing ”); _Switch = 1 ; } public void PauseMusic() { Console.WriteLine(“Music is pause ”); _Switch = 0 ; } public void Stop() { Console.WriteLine(“Music is stopped ”); _Switch = -1 ; } } // Error ? 7 Ví dụ (tt) public class Player : IPlayerManager { int _Switch; public void PlayMusic() { Console.WriteLine(“Music is playing ”); _Switch = 1 ; } public void PauseMusic() { Console.WriteLine(“Music is pause ”); _Switch = 0 ; } public void Stop() { Console.WriteLine(“Music is stop ”); _Switch = -1 ; } public int OnOff { get { return _Switch ; } } } 8 Thực thi nhiều giao diện • Các lớp có thể thực thi nhiều giao diện, đây là cách để thực hiện đa kế thừa trong C#. • Ví dụ interface IStorable { void Read(string FileName); void Write(string FileName); string Data { get; set; } } interface IEncryptable { void Encrypt( ); void Decrypt( ); } 9 Thực thi nhiều giao diện public class Document : IStorable, IEncryptable { string S; public Document(string str) { S = str; } public void Read( string FileName) {} public void Write(string FileName) { } … } 10 Mở Rộng Giao Diện interface IStorableAndCompressible : IStorable { // bo sung them phuong thuc nen va giai nen void Compress( ); void Decompress( ); } 11 Kết Hợp Giao Diện interface IstorableAndEncryptable: IStorable, IEncryptable { //Có thể bổ sung thêm các phương thức, thuộc tính… mới } public class Document : IStorableAndEncryptable { … } 12 FAQs 13 Hết chương 8 Môn Lập Trình Hướng Đối Tượng 14