在C#中,什么时候应该使用接口,何时应该使用抽象类?什么是决定性因素?接口与抽象类
Q
接口与抽象类
85
A
回答
107
一个抽象类的优点是:对指定的方法的默认实现
- 能力
- 新增不变检查到功能
- 已在“接口”方法的调用方式 稍微控制
- 能够提供与“免费”界面相关或不相关的行为
接口仅仅是数据传递合同,并没有这些功能。但是,它们通常更灵活,因为类型只能从一个类派生,但可以实现任意数量的接口。
+0
@JaredPar:我猜这是为了劝阻回答重复的问题(顺便说一句,我不是那个低估了你的人) – Brann 2009-04-14 13:34:25
5
真正的问题是:是否使用接口或基类。这已经在之前报道过了。
在C#中,抽象类(标有关键字“abstract”的一个类)只是一个类,您无法实例化对象。这与仅仅区分基类和接口之间的区别有所不同。
59
抽象类和接口在语义上是不同的,尽管它们的用法可能会重叠。
抽象类通常用作类似类的构建基础。类的常见实现可以放在抽象类中。
接口通常用于指定类的能力,其中类不一定非常相似。
6
要考虑的另一件事是,由于没有多重继承,如果您希望某个类能够从您的接口/抽象类实现/继承,但从另一个基类继承,请使用接口。
相关问题
- 1. 抽象类MouseAdapter与接口
- 2. 100%抽象类与接口
- 3. 抽象类与代表族的接口
- 4. 抽象类或SoftDelete接口
- 5. 抽象类V/s接口
- 6. 纯抽象类和接口
- 7. 接口vs 100%抽象类
- 8. PHP抽象类和接口
- 9. 接口或抽象类
- 10. 抽象类和接口
- 11. 抽象类实现接口
- 12. 类层次结构设计 - 接口+基类与抽象类
- 13. 接口和抽象
- 14. 使用接口和抽象类
- 15. 抽象类和接口在Java中
- 16. 映射接口或抽象类成分
- 17. 属性,接口或抽象类
- 18. 抽象类定义观察者接口
- 19. Java接口和抽象类的问题
- 20. IoC服务的抽象类或接口?
- 21. 的Java抽象类实现接口
- 22. 抽象类难点:继承从接口
- 23. 需要抽象类以及接口?
- 24. 使用接口和抽象类
- 25. 何时使用抽象类或接口?
- 26. 生成抽象类的接口
- 27. 使用的Java [接口/抽象类]
- 28. java中的接口中的抽象类
- 29. 正确使用接口和抽象类
- 30. 使用抽象类和接口
我不同意这是“确切”的重复。 – 2009-04-14 13:45:33