C#接口的實現和繼承實踐


1.基本概念

接口是一種契約規范,類似於抽象基類。包括方法,屬性,索引器和事件作為成員,這些成員只是作為定義,並不在接口中具體實現。

接口創建時注意以下事項:

  1. 繼承接口的任何非抽象類都必須實現接口的所有成員
  2. 不能直接實例化接口
  3. 接口可以包含事件,索引器,屬性和方法,不包括方法的實現
  4. 類和結構可從多個接口繼承,中間用“,”隔開
  5. 接口自身可從多個接口繼承

接口聲明格式如下

修飾符 interface 接口名稱:繼承接口列表(非繼承接口可省去該部分)

{

接口內容:屬性,方法,索引器,事件

}

2.使用實例

如定義一個信息類接口,包含編碼和名稱屬性及信息顯示方法。

通過銷售類信息和進貨類信息繼承該接口。

整個文檔接口如下:

 

  • 接口定義
 1 namespace CSCOMExample
 2 {
 3     public interface Informatioin
 4     {
 5         string Code { get; set; } //編碼屬性
 6         string Name { get; set; }//名稱屬性
 7         void ShowInfo();//輸出信息方法
 8     }
 9 
10    }    
  • 進貨類
 1 namespace CSCOMExample
 2 {
 3  
 4         /// <summary>
 5         /// 進貨信息繼承接口
 6         /// </summary>
 7         public class JHInfo : Informatioin      //繼承接口
 8         {
 9             string code = "";
10             string name = "";
11             /// <summary>
12             /// 實現編碼屬性
13             /// </summary>
14             public string Code
15             {
16                 get { return code; }
17                 set { code = value; }
18             }
19             /// <summary>
20             /// 實現名稱屬性
21             /// </summary>
22             public string Name
23             {
24                 get { return name; }
25                 set { name = value; }
26             }
27         /// <summary>
28         /// 實現進貨顯示信息方法
29         /// </summary>
30         void Informatioin.ShowInfo()
31         {
32             Console.WriteLine("進貨信息:\n" + Code + " " + Name);
33         }
34     }
35 }
  • 銷售類
 1 namespace CSCOMExample
 2 {
 3     /// <summary>
 4     /// 銷售信息繼承接口
 5     /// </summary>
 6     public class XSInfo : Informatioin      //繼承接口
 7     {
 8         string code = "";
 9         string name = "";
10         /// <summary>
11         /// 實現編碼屬性
12         /// </summary>
13      public  string Code
14         {
15             get { return code; }
16             set{code =value; }
17         }
18         /// <summary>
19         /// 實現名稱屬性
20         /// </summary>
21        public string Name
22         {
23             get{return name; }
24             set {  name=value;  }
25         }
26         /// <summary>
27         ///銷售信息顯示方法
28         /// </summary>
29         void Informatioin.ShowInfo()
30         {
31             Console.WriteLine("銷售信息:\n" + Code + " " + Name);
32         }
33     }
34 }

以上,分別在JHInfo類和XSInfo類中對接口的屬性和方法進行了實現。如此,一個信息接口Information就完成了。

再做一個測試程序,檢測接口:

 1 namespace ComText
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Informatioin[] Infos = { new JHInfo(), new XSInfo() };//定義接口數組
 8             Infos[0].Code = "JH0001";
 9             Infos[0].Name = "筆記本電腦";
10             Infos[0].ShowInfo();
11 
12             Infos[1].Code = "XS0001";
13             Infos[1].Name = "榮耀手機";
14             Infos[1].ShowInfo();
15             Console.ReadLine();
16         }
17     }
18 }

輸出結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM