建议102:区分接口和抽象类的应用场合 接口和抽象类有一些显而易见的区别: 接口支持多继承,抽象类则不能. 接口可以包含方法.属性.索引器.事件的签名,但不能有实现,抽象类则可以. 接口在增加新方法后,所有的继承者都必须重构,否则编译不通过,而抽象类则不需要. 这些区别导致两者的应用场景不同: 如果对象存在多个功能相近且关系紧密的版本,则使用抽象类. 如果关系不紧密,但若干功能拥有共同的声明,则使用接口. 抽象类适合于提供丰富功能的场合,接口则更倾向于提供单一的一组功能. 从某种角度来看,抽象类…