若是你拥有一些方法而且想让它们中的一些有默认实现,那么使用抽象类吧。继承
若是你想实现多重继承,那么你必须使用接口。因为Java不支持多继承,子类不可以继承多个类,但能够实现多个接口。所以你就能够使用接口来解决它。接口
若是基本功能在不断改变,那么就须要使用抽象类。若是不断改变基本功能而且使用接口,那么就须要改变全部实现了该接口的类。图片
Oracle已经开始尝试向接口中引入默认方法和静态方法,以此来减小抽象类和接口之间的差别。如今,咱们能够为接口提供默认实现的方法了而且不用强制子类来实现它。这类内容我将在下篇博客进行阐述。博客