区别:html
1.抽象类中能够有方法实现;但接口中只能有方法声明。spa
2.抽象类是重构的结果;接口是设计的结果。设计
3.Java不支持多继承,因此继承抽象类只能继承一个,但能够实现多个接口。htm
关于使用场合:blog
1.接口是核心,其定义了要作的事情,包含许多方法,但没有具体实现方法。此处考虑封装,多态的讲解继承
2.若类实现了接口,则要实现接口中的每一个方法。接口
3.若某些类的实现有共通之处,则能够抽象出一个抽象类,由抽象类实现接口的共通代码,而个性化的方法则由各个子类去实现。开发
可见,抽象类是为了简化接口的实现,不只实现了公共方法,让你能够快速开发,又容许你的类彻底能够本身实现全部的方法,不会出现紧耦合的问题,使应用场合更简单了。get
因此使用时:重构
1.优先定义接口。
2.如有多个接口实现有公用部分,则使用抽象类,而后进行集成。