接口体现的是一种规范,接口规定了实现者必须向外提供哪些服务,规定了接口调用者可以调用哪些服务,以及如何调用这些服务
抽象类体现的是一种模板模式的设计,
二者区别
(1)接口中不包含构造器和初始化块,抽象类中包含
(2)接口中只能定义静态常量,抽象类可以定义任何变量
关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的