在C#中,类之间的继承关系只能用于单继承,而接口就是用于多继承关系的。一个类只能继承一个类,但可以继承多个接口。类在继承接口的同时,也可以继承类,并且接口之间也能进行继承。
接口定义了属性,方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类中应遵循的标准结构。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同“怎么做”部分。
接口中的语法规范
接口的命名要使用大写字母 ”I” 开头,后面接功能名称,例:IText
接口中不能定义构造方法,接口也不能实例化。如果类被定义为抽象类,它的所有成员也都定义为抽象的,那么它和类非常相似。
接口中的成员
接口中的成员不能使用 public,private,protected,internal访问修饰符。
接口中的成员不能使用 static, abstract,sealed 修饰符。
在接口中不能包含字段。
在接口中定义的方法不能含有方法体。在接口中定义的方法都是抽象方法,在有接口或类继承时,必须继承并实现这个父类接口中的方法。否则这个类会被定义为抽象类。
例:
接口的实现
接口的实现是通过继承的方式实现。
接口继承接口之后,子类接口拥有父类接口中的全部成员。
类继承接口必须实现父类接口中的所有成员方法,否则该类将被定义为抽象类,没有实现的方法定义为抽象方法。
例:
这是一个接口。
用类去继承它时。
接口中的显示隐式实现和显示实现
隐式实现
显示实现