深入理解接口与值类型:特性、应用及性能考量
1. 接口的特性与使用原则
接口在编程中扮演着重要角色,它是面向对象编程的关键扩展。对于实现 ISettingsProvider 的类,程序员可以选择将其实现升级以包含 IDistributedSettingsProvider ,也可以选择忽略。但如果不创建新接口,而是将与机器相关的方法添加到 ISettingsProvider 中,实现该接口的类将无法与新的接口定义成功编译,从而导致版本不兼容的问题。
在开发阶段,更改接口是可以接受的,但如果接口已经发布,就不应再对其进行更改,而应创建一个可能派生自原始接口的新接口。
接口引入了另一类数据类型,它与类不同,不能被实例化。接口实例只能通过实现该接口的对象的引用进行访问,不能使用 new 运算符,因此接口不能包含构造函数或终结器,也不允许有静态成员。
接口与抽象类有相似之处,比如都不能独立实例化。以下是抽象类和接口的详细比较:
| 比较项 | 抽象类 | 接口 |
| — | — | — |
| 实例化 | 不能独立于派生类实例化,构造函数仅由派生类调用 | 不能实例化 |
| 成员实现 | 定义抽象成员签名,基类必须实现 | 所有成员的实现都在基类中,不能只实现部分成员 |
| 扩展性 | 更具扩展性,添加非抽象成员不会破坏版本兼容性 | 添加成员会破坏版本兼容性 |
| 数据存储 | 可以包含存储在字段中的数据 | 不能存储数据,字段只能在派生类中指定,可通过定义无实现的属性来解决 | <
超级会员免费看
订阅专栏 解锁全文
1307

被折叠的 条评论
为什么被折叠?



