Interface接口學習總結淺析
Interface接口的主要功能是什么呢?我們經常在編程時使用的Interface接口那么作用是什么?Interface接口可定義的類是什么?下面我們一一介紹。
1. 接口描述的是可屬于任何類或結構的一組相關功能:
◆接口可由方法、屬性、事件、索引器或這四種成員類型的任意組合構成。
◆接口不能包含字段。
◆接口成員一定是公共的。
◆若要實現接口成員,類中的對應成員必須是公共的、非靜態的,并且與接口成員具有相同的名稱和簽名。類的屬性和索引器可以為接口上定義的屬性或索引器定義額外的訪問器。例如,接口可以聲明一個帶有 get 訪問器的屬性,而實現該接口的類可以聲明同時帶有 get 和 set 訪問器的同一屬性。但是,如果屬性或索引器使用顯式實現,則訪問器必須匹配。
2. 接口可定義的類容:
隱式接口:如果類或者結構要實現的是單個接口,可以使用隱式實現。
顯式接口:如果類或者結構繼承了多個接口那么接口中相同名稱成員就要顯式實現。顯式實現是通過使用接口的完全限定名來實現接口成員的。
使用顯式接口目的:
1、因為顯式接口成員執行體不能通過類的實例進行訪問,這就可以從公有接口中把接口的實現部分單獨分離開。如果一個類只在內部使用該接口,而類的使用者不會直接使用到該接口,這種顯式接口成員執行體就可以起到作用。
2、顯式接口成員執行體避免了接口成員之間因為同名而發生混淆。如果一個類希望對名稱和返回類型相同的接口成員采用不同的實現方式,這就必須要使用到顯式接口成員執行體。如果沒有顯式接口成員執行體,那么對于名稱和返回類型不同的接口成員,類也無法進行實現。
隱式接口:
如果類實現兩個接口,并且這兩個接口包含具有相同簽名的成員,那么在類中實現該成員將導致兩個接口都使用該成員作為它們的實現。例如:
C#
- interface IControl
- {
- void Paint();
- }
- interface ISurface
- {
- void Paint();
- }
- class SampleClass : IControl, ISurface
- {
- // Both ISurface.Paint and IControl.Paint call this method.
- public void Paint()
- {
- }
- }
調用:可以直接調用
顯式接口:
如果兩個接口成員執行不同的函數,那么這可能會導致其中一個接口的實現不正確或兩個接口的實現都不正確。可以顯式地實現接口成員 -- 即創建一個僅通過該接口調用并且特定于該接口的類成員。這是使用接口名稱和一個句點命名該類成員來實現的。例如:
C#
- public class SampleClass : IControl, ISurface
- {
- void IControl.Paint()
- {
- System.Console.WriteLine("IControl.Paint");
- }
- void ISurface.Paint()
- {
- System.Console.WriteLine("ISurface.Paint");
- }
- }
調用:只能通過接口來調用。
Interface接口的基本內容就向你介紹到這里,希望對你了解和學習Interface接口有所幫助。
【編輯推薦】