一、什么是接口
首先从类继承是很强大的机制,但继承真正强大的地方就是能从接口继承,接口不包含任何代码和数据,它值规定了从接口继承的类必须提供哪些方法和属性,使用接口,方法的名称可以和方法的具体实现完全隔绝。假如要定义一个新的类来存储对象集合,但和使用的数组不同,要提供为RetrieveInOrder的方法,允许应用程序工具集合中的对象类型来顺序获取对象。
可以定义一个借口来包含这个方法,规定只有实现了该接口的类才是集合。使用接口可以真正的将what和how区分开。
方法----------》怎么做how
接口----------》有什么what
二、定义接口
定义接口和定义类相似,只是使用interface而不是class关键字,在接口中按照与类和接口的方式声明,不允许指定任何访问修饰符,如public。接口不包含任何数据,不可以向接口添加字段。
三、实现接口
实现接口时,必须保证每个方法都匹配对应接口方法
1、方法名和返回类型完全匹配
2、所有参数(包括ref和out关键字修饰符)都完全匹配
3、实现接口的所有方法都必须有关键字public可访问性,但如果使用显示接口实现,则不应该为方法添加访问修饰符。
c#根据位置来区分,首先写基类名,再用逗号,最后写接口名。
四、接口的限制
1、不能再接口中定义任何字段,包括静态字段。字段本质上是类或者结构的实现细节。
2、不能再解控中定义任何构造器。构造器也是类或者结构的实现细节。
3、不能再接口中定义任何析构器。析构器包含用于析构对象实例的语句。
4、不能为任何方法指定访问修饰符。接口所有的方法都是隐式为公共方法。
5、不能在接口中嵌套任何类型。
6、虽然一个接口能够从另一个接口中继承,但不允许从结构或类继承。接口和类含有实现,若允许接口从它们继承,就会继承实现。
五、定一个和使用接口