- 从概念上来讲,抽象类是对根源的抽象,接口是对动作的抽象
- 定义抽象类的关键字是abstract,定义接口的关键字是interface
- 一个类只能继承一个抽象类(关键字:extends),但是能继承多个接口(implements)。比如人不可以同时继承生物类和非生物类,但可以同时继承吃饭和走路这两个动作接口
- 抽象类中可以有方法声明也可以有方法实现,但接口只能做方法声明。
- 抽象类可以有具体的方法和属性,接口只能是抽象方法(必须是公共方法)和常量
- 抽象类里的抽象方法必须被子类实现,如果子类不能全部实现抽象方法,该子类只能是抽象类,同样如不能实现全部接口,该类只能是抽象类