标签: java
可能重复: Interface vs Abstract Class (general OO)
我对这种差异并不十分清楚。
由于
答案 0 :(得分:17)
它们非常相似,但存在一些重要的技术差异:
这些差异会影响两种技术的使用方式:
答案 1 :(得分:4)
接口不允许定义任何成员方法,而抽象类允许定义部分或全部。然而,一个类只能扩展一个类(抽象或不抽象),但可以实现任意数量的接口。
答案 2 :(得分:3)
我喜欢将界面视为合约。任何实现接口的类都必须提供有关在调用合同中定义的任何方法时要执行的操作的详细信息。抽象类是一个定义了一组实际行为的类,即不仅仅是稍后要实现的合同,而且该类无法实例化。