接口和抽象类的共同点:
1.都是上层的抽象层
2.都不能被实例化
3.都能包含抽象的方法
抽象类可以有默认的方法实现完全是抽象的。接口根本不存在方法的实现。
抽象类使用extends关键字来继承抽象类,如果子类不是抽象类的话,需要提供抽象类中所有声明的方法的实现。
子类使用关键字implements来实现接口,需要提供接口中所有声明的方法的实现。
抽象类可以有构造器,而接口不能有构造器
抽象类在java语言中所表示的是一种继承关系,一个子类只能存在一个父类,但是可以存在多个接口。
抽象方法比接口速度要快
接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。
jdk1.8包含static,default默认实现方法