接口与抽象类的相同点
1.都可以定义抽象方法
2.都不能直接进行实例化来创建对象
3.它们的子类/实现类都必须重写所有的抽象方法,否则该子类/实现类也必须是一个抽象类
接口与抽象类的不同点
1.抽象类中可以定义构造方法,属性,普通方法等,而接口不能
2.接口在1.8之后,在原有的定义静态常量,抽象方法的基础上,还可以定义默认方法和静态方法。在1.9之后,可以定义私有方法
3.抽象类只能继承一个父类,而接口可以继承多个父类接口
接口比抽象类更好的特性
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现