[Clr via C#读书笔记]Cp13接口
Cp13接口
类和接口继承
接口只提供签名,不提供实现;等效于契约;凡事能使用具名接口的地方都能够使用实现了的接口。
定义接口
定义很简单,FCL也提供了大量的现成接口供使用;
继承接口
类不能多继承,接口可以;
调用接口
变量可以是接口,但是只能调用这个接口约定的操作;
隐式接口和显式接口的实现
隐式接口的操作可以通过类变量进行,而显示接口的实现,只能通过接口类型的变量进行;
泛型接口
协变和逆变;泛型和接口的约束;
具有相同方法和签名的多个接口的实现
必须使用显式接口的实现。
显示接口的优点和不足
优点:可以减少值类型的装箱,增强部分类型安全性;
缺点:利用接口调用的时候还是会产生装箱,不能由派生类调用;
显式接口确实用的不多;
设计:基类还是接口
is-a vs can-do;is-a用继承,can-do用接口;可以同时用;