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("进货信息:
" + 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("销售信息:
" + 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 }

输出结果如下:

原文地址:https://www.cnblogs.com/allencxw/p/9528443.html