我正在阅读Java中的抽象概念。
这些是我的理解:
这些是我的问题:
当抽象类在所有方法都是抽象的时候可以像界面一样运行时,为什么我们需要单独使用接口?请以一个例子来解释,以便更好地理解。
我们可以在功能基础上调用 Abstract class = Interface + Inheritance 吗?因为我们可以与Abstract类一起实现接口和继承的功能。
答案 0 :(得分:2)
简单地说:接口是契约,抽象类是骨架实现。 (另外,在Java接口中大多使用,因为不可能扩展多个类。)
合同说什么,实现说如何。
界面示例: java.util.List
。它具有任何列表应具有的所有方法:add()
,size()
,indexOf()
等。
抽象类示例: java.util.AbstractList
。虽然它有许多抽象方法,但是一些List
方法(不依赖于元素存储在具体列表中的方式)在那里实现(addAll()
,equals()
,{{1 }} 和别的)。要创建完整的实现,并非所有toString()
方法都应该实现,从而使实现者的工作更轻松。