1.基本概念
接口是一种契约规范,类似于抽象基类。包括方法,属性,索引器和事件作为成员,这些成员只是作为定义,并不在接口中具体实现。
接口创建时注意以下事项:
继承接口的任何非抽象类都必须实现接口的所有成员
不能直接实例化接口
接口可以包含事件,索引器,属性和方法,不包括方法的实现
类和结构可从多个接口继承,中间用“,”隔开
接口自身可从多个接口继承
接口声明格式如下
修饰符 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 ///
5 /// 进货信息继承接口
6 ///
7 public class JHInfo : Informatioin //继承接口
8 {
9 string code = "";
10 string name = "";
11 ///
12 /// 实现编码属性
13 ///
14 public string Code
15 {
16 get { return code; }
17 set { code = value; }
18 }
19 ///
20 /// 实现名称属性
21 ///
22 public string Name
23 {
24 get { return name; }
25 set { name = value; }
26 }
27 ///
28 /// 实现进货显示信息方法
29 ///
30 void Informatioin.ShowInfo()
31 {
32 Console.WriteLine("进货信息:\n" + Code + " " + Name);
33 }
34 }
35 }
销售类
1 namespace CSCOMExample
2 {
3 ///
4 /// 销售信息继承接口
5 ///
6 public class XSInfo : Informatioin //继承接口
7 {
8 string code = "";
9 string name = "";
10 ///
11 /// 实现编码属性
12 ///
13 public string Code
14 {
15 get { return code; }
16 set{code =value; }
17 }
18 ///
19 /// 实现名称属性
20 ///
21 public string Name
22 {
23 get{return name; }
24 set { name=value; }
25 }
26 ///
27 ///销售信息显示方法
28 ///
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 }
输出结果如下: