C#接口的实现和继承实践

C#接口的实现和继承实践

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 }

输出结果如下:

相关推荐