• 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)
14 trang |
Chia sẻ: lylyngoc | Lượt xem: 1477 | Lượt tải: 1
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