• 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)
                
              
            Interface (Giao Diện)
Môn Lập Trình Hướng Đối Tượng – Chương 8
Nguyễn Minh Thành
[M] : 
[email protected]
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