相同:
- 都位于继承的顶端,用于被其他类实现或继承
- 都不能直接实例化对象
- 都包含抽象方法,其子类都必须覆写这些抽象方法
区别
- 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重复性:接口只能包含抽象方法
- 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口(接口弥补了java的单继承)
- 抽象类是这个事物应该具备的内容,继承体系是一种**is...a**关系
- 接口是这个事物中的额外内容,继承体系是一种**like...a**的关系
- 都位于继承的顶端,用于被其他类实现或继承
- 都不能直接实例化对象
- 都包含抽象方法,其子类都必须覆写这些抽象方法
区别
- 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重复性:接口只能包含抽象方法
- 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口(接口弥补了java的单继承)
- 抽象类是这个事物应该具备的内容,继承体系是一种**is...a**关系
- 接口是这个事物中的额外内容,继承体系是一种**like...a**的关系