C#与.net3.0高级程序设计(特别版)---第七章:接口与集合(上)
7.1使用C#实现接口
定义:接口就是语义相关的一个或多个抽象成员组成的命名集合,使用interface定义,但从不指定基类,所有接口成员不带访问修饰符,默认为公共的。
7.2使用C#实现接口,当一个类或结构选择通过支持接口类型来扩展其功能时,用逗号分隔列表,最直接的基类必须是列在冒号后面的第一个成员,如果没有特别指明默认为System.Object,对于结构而言则是System.ValueType.
实现一个接口时,需要实现该接口的所有成员。
7.3接口与抽象基类的对比
相同点:需实现抽象方法的细节,(若派生类类没有生命为抽象的。)
不同点:抽象基类可指定公有,私有,受保护的状态数据以及许多被子类访问的实体方法,而接口不定义状态和实现方法。
7.4在对象级别调用接口成员
如何动态判断一个类型支持哪些接口?
1.强制类型转换,抛出异常。 2.使用is判断 3.使用as判断
7.5 接口作为参数。7.6接口作为返回值。7.7接口类型数组。
7.8显示接口实现(保证接口定义的方法只能由接口引用访问)
必要性:当接口与抽象类定义了同名的方法时,实现类或派生类对该方法进行重写时,存在二义性。这时可以使用显示接口实现。
模式为 returnValue InterfaceName MethodName(Args) 注意:不可使用访问修饰符(使用显示接口实现是为了保证一个指定接口方法被限定在接口级别。如果使用public关键字,择说明该方法是类的公共部分的一个成员,与之前说法不符)。
7.9构建接口层次结构
接口与多个基接口