求知若饥,虚心若愚
接口
基类除了共享成员签名,还允许共享实现。但接口只允许共享成员签名。
这对于那些没有公用实现的不同类实现多态很有用,且还能不浪费唯一的基类机会。
- 根据规定(并非强制但最好保持),接口名称要使用Pascal大小写,加"I"前缀
- 不支持字段,但支持属性
- 调用者可随便切换不同的实现而不需要修改调用代码
- 不允许为接口成员使用修饰符,默认为公共
- 接口可显式实现和隐式实现,默认为隐式,即对象实例不必转换接口就能访问
- 成员是不是核心的类功能?如果不是可选择显式
- 接口成员的引入会不会不适用于类成员,可能容易让人怀疑这个类的用途,这种可选择显式
- 已经有同名的类成员
- 不想实例对象能访问部分接口时,隐藏部分实现?
- 由于接口可继承,当显式实现接口成员时,必须在完全限定的接口成员中引用最初声明它的接口名称
- 已发布版本的接口不要随意修改,不然要处理实现这个接口的那些类,可以通过继承旧接口来实现新的接口
- 接口不能有静态成员