Khai báo giao diện 3.. Thực thi nhiều giao diện... Đị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
Trang 1Interface (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
Trang 2Nộ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
Trang 3Đị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
Trang 4Cú pháp
[MứcĐộTruyCập] Interface TênGiaoDiện [:
GiaoDiệnCơ Sở]
{
//Nội dung giao diện
}
▫ [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 (,)
Trang 5Ví dụ
public interface IPlayerManager
{
public void PlayMusic();
public void PauseMusic();
public void Stop();
public int OnOff // thuộc tính của
Interface
{
get ; }
}
Trang 6Ví dụ (tt)
public interface IPlayerManager
{
void PlayMusic();
void PauseMusic();
void Stop();
int OnOff // thuộc tính của Interface
{
get ; }
}
// Error ?
Trang 7Ví 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 ?
Trang 8Ví 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 ; } }
}
Trang 9Thự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( );
}
Trang 10Thự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)
{ }
…
}
Trang 11Mở Rộng Giao Diện
interface IStorableAndCompressible : IStorable
{
// bo sung them phuong thuc nen va giai nen
void Compress( );
void Decompress( );
}
Trang 12Kế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
{
…
}
Trang 13FAQs
Trang 14Hết chương 8
Môn Lập Trình Hướng Đối Tượng