在C#中,什么时候应该使用接口,什么时候应该使用抽象类?什么可能是决定因素?
更新:C# 8.0 新功能:从 C# 8.0 开始,接口可以定义成员的默认实现,包括属性。在接口中定义属性的默认实现很少见,因为接口可能不定义实例数据字段。
抽象类的优点是:
- 能够指定方法的默认实现
- 为函数添加不变检查
- 对如何调用“接口”方法有更多的控制
- 能够“免费”提供与界面相关或无关的行为
接口只是数据传递契约,不具有这些功能。然而,它们通常更灵活,因为一种类型只能从一个类派生,但可以实现任意数量的接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)