在抽象类中,我们可以使所有的方法都是抽象的,以便它可以像接口一样工作,那么为什么要使用接口呢?我能够想出的一个原因是我们可以实现多个接口而不是扩展多个类。是否有涉及任何设计或性能相关的东西?为什么要使用接口,而我们可以使所有方法都是抽象的?
-1
A
回答
2
你已经得到了答案。使用接口,我们可以执行多种类型的行为,因为使用类不会为你工作。例如,你可以强制一个类与IComparable以及INumerable一样,但如果你想用类来完成它是不可能的。
0
设计明智的,最好的准则使用Interface
你代码的行为/合同/功能定义(见List
接口),并使用Abstract
类,你必须atlease一些可重复使用(通过继承)方法实现。
虽然所有方法都可以使用abstract
,但在这种情况下,Interface
是首选。
1
您已经确定了接口允许抽象类不允许的一件事。一个类不能扩展多个抽象类。
是否有任何设计或性能相关的东西?
没有性能差异。
你可能会认为,抽象类(实际上,所有类)的单一继承限制使得这是“设计事物”。当然,它会严重限制你在面向对象设计中使用多态性。
(你也可以说,你不能遵循“编程接口”当你没有界面的格言。但是,这是一个薄弱的论据......一个术语狡辩。)
相关问题
- 1. 为什么任何一种抽象都使用接口而不是抽象类?
- 2. 为什么使用抽象如果我们有接口
- 3. 为什么我们不能在WCF中使用抽象类而不是接口?
- 4. 为什么我们有抽象类时需要接口?
- 5. 我们需要声明的接口方法是抽象
- 6. 为什么使用接口而不是抽象类与DI?
- 7. 为什么我们可以调用接口org.w3c.dom.Document的方法?
- 8. 为什么我们需要抽象类而不是虚拟类?
- 9. 为什么我们在java中使用抽象类和抽象方法
- 10. 接口抽象的所有方法?
- 11. 为什么我们要使用抽象类或方法,为什么不重写超类方法呢?
- 12. 为什么你需要知道抽象类的抽象方法是否抽象
- 13. 为什么HttpContext是一个抽象类而不是接口?
- 14. 为什么java.sql.Statement是一个接口而不是抽象类?
- 15. 为什么我们实现接口抽象类
- 16. 为什么在我们的项目中需要接口层/抽象类?
- 17. 即使没有抽象方法,类也可以抽象吗?如果是的话有什么用?
- 18. 为什么接口或抽象类有用? (或为什么?)
- 19. 为什么要使用抽象工厂
- 20. 为什么我们使用接口引用一个子对象?
- 21. 为什么我们要实现接口?
- 22. 是否有可能只覆盖n方法中的接口或抽象类中所需的抽象方法?
- 23. 为什么我们不能在接口/抽象类中使用Shared(静态)函数/方法?
- 24. 抽象类可以使用那种方式或我应该使用接口?
- 25. 内部抽象方法。为什么会有人拥有它们?
- 26. 为什么要使用Create方法而不是使用“new”?
- 27. 为什么我们主要使用LocalDB而不是SQL Server?
- 28. 有人可以给我一个什么时候抽象类和接口必须被使用的想法吗?
- 29. 没有调用类抽象我们可以从接口实现少数(不是全部)方法吗?
- 30. 我们可以使用Dispose方法而不实现IDisposable接口吗?
你自己回答了这个问题...... – jlordo 2013-05-04 13:53:46
把问题写成答案,接受它,你就完成了。 – Maroun 2013-05-04 13:54:10
http://stackoverflow.com/questions/10040069/abstract-class-vs-interface-in-java – 2013-05-04 13:54:57