-
接口的方法默认是public,jdk1.8开始接口的方法 可以有默认实现。抽象类可以有非抽象的方法。
-
接口中成员变量必须是public static final修饰;而抽象类中则不一定。
原因:接口是规范,所以应该是public公用的;而接口可以多继承,使用statis是为了保证接口不会声明相同的变量,但是继承接口的类不知道使用哪个接口的变量;final是保证接口中变量不可修改,因为接口是公用的,可修改则可能会牵一发而动全身。 -
接口方法的默认修饰符是public;而抽象方法可以是public、protected和default,但不能是private,因为抽象方法需要被重写。
-
可以实现多个接口,但只能继承一个抽象类。
-
接口相当于一种规范;抽象类相当于一种模板。
参考:
https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md
https://blog.csdn.net/u013682953/article/details/73699796