一、接口概念
接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。
二、声明接口
1. 接口声明不能包含:数据成员、静态成员,只能包含以下类型的非静态成员函数:方法、属性、事件、索引器。
2. 接口中函数成员的声明不能包含任何实现代码,只能用分号。
3. 按照惯例,接口名称以大写字母I(Interface)开始。
4. 与类和结构一样,接口声明也可以分部。
5. 接口声明可以有任何的访问修饰符public、protected、internal或private。接口的成员是隐式public的,不允许有任何访问修饰符,包括public。
示例:
三、实现接口
只有类和结构才能实现接口:
1. 如果类实现了接口,它必须实现接口的所有成员。
2. 如果类从基类继承并实现了接口,基类列表中的基类名称必须放在所有接口之前。
示例:
四、使用接口
1. 根据类对象引用获取指向接口的引用:
(1)强制类型转换:如果类没有实现对应的接口,会抛出异常。
示例:
(2)使用as运算符:如果类没有实现对应的接口,返回null。
示例:
2. 类或结构可以实现多个接口:
如果一个类实现了多接口,并且其中有些接口有相同签名和返回类型,这时,类可以实现单个成员来满足所有包含重复成员的接口,也可以为每个接口分离实现,即创建显式接口成员实现。
示例:
3. 如果类实现了多接口,我们可以获取每个接口的独立引用。
4. 实现接口的类可以从它的基类继承实现的代码。
5. 接口可以继承接口。