1.抽象类和接口的对比
抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合,从设计层面来讲,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范(抽象类是模板设计,接口是行为设计)
相同点:
- 接口和抽象类都不能实例化
- 都位于继承的顶端,用于被其他实现或继承
- 都包含抽象方法,其子类都必须覆写这些抽象方法
不同点:
- 抽象类用abstract关键字声明,接口用interface关键字声明
- 子类使用extends关键字来继承抽象类。子类使用implements关键字来实现接口
- 抽象类可以有构造器,接口不能有构造器
- 一个类只能继承一个抽象类,但可以实现多个接口
- 抽象类的字段声明可以是任意的,接口的字段默认都是static和final的