一、接口的方法默认是public,所有方法在接口中不能有实现(java8开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
二、接口中除了static、final变量,不能有其他变量,而抽象类中则不一定。
三、一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过extends关键字扩展多个接口。
四、接口方法默认修饰符是public,抽象方法可以有public、protected和default 这些修饰符(抽象⽅法就是为了被重写所以不能使⽤ private 关键字修饰!)。
五、从设计层⾯来说,抽象是对类的抽象,是⼀种模板设计,⽽接⼝是对⾏为的抽象,是⼀种⾏为的规范。