C#入门系列 (二十五) -- 接口
接口概念
C#提供了多种进行规模化程序设计会用到的技术,如接口、程序集、命名空间等,本篇文章介绍下接口。
接口是类和类之间的协议,使用接口可以使得实现接口的类或结构在形式上保持一致,使程序更加清晰和条理化,具有很好的扩展性,并可以方便实现类与类之间的统一管理,是组件技术的重要支撑。
接口把所有的方法和属性都掏空了,接口内部只有声明没有实现代码。
接口的声明语法如下:
代码示例:
接口声明
接口就是一组类或结构的一种实现形式约定。
声明接口时,需要遵守下面的规则:
接口声明不能包括数据成员;
接口声明只能包括成员类型为方法、属性、事件和索引的非静态成员函数的声明;
接口的函数成员声明不能包括任何实现代码,每个函数成员声明的主体后必须使用分号;
按照惯例,接口的名称必须从大写的 I 开始;
与类和结构相似,接口声明可以分割成分部接口声明;
接口声明可以使用所有的访问修饰符 public、protected、internal 和 private;
接口的成员是隐式 public 的,不允许有任何访问修饰符。
C#虽然不支持类的多继承,但是 C#支持接口的多继承,代码实现如下:
接口实现
只有类和结构可以实现接口。要实现接口,类或结构必须在基类列表中包括接口名称,并且必须为每一个接口成员提供实现。
实现接口时必须实现所有接口成员,否则就会出现编译错误:
代码示例:
补充说明:
如果类从基类继承并实现接口,则基类列表中基类名称必须放在任何接口之前。
C#支持一个类或结构实现多个接口,所有实现的接口必须在基类列表中用逗号分隔。
如果一个类实现了多个接口,并且其中一些接口有相同签名和返回类型的成员,则类可以实现单个成员来满足所有包含重复成员的接口,也可以通过显式实现方式分别实现每个接口的成员
版权声明: 本文为 InfoQ 作者【陈言必行】的原创文章。
原文链接:【http://xie.infoq.cn/article/e72d71171e56b7b9b69abfe22】。未经作者许可,禁止转载。
评论