1.首先,从基础语法上来说接口使用interface 而抽象类使用abstract
2.实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
3.所有的成员方法都是被public abstract修饰的抽象方法,不能有方法的实现(JDK1.8之前),java 1.8中可以定义default方法体,而抽象类可以有抽象方法与实现。
4.接口的成员变量默认是静态常量,必须赋初值,不能够修改。抽象类的成员变量可以是普通变量。
5.抽象类中可以定义构造方法,接口则不能。
什么时候用接口或抽象类?
如果你拥有一些方法并且想让它们中的一些有默认实现,那么就使用抽象类
如果想实现多继承,则必须使用接口;java不支持多继承,子类不能继承多个类,但是可以实现多个接口,因此可以用接口来解决。
原文:https://www.cnblogs.com/yuangaopan/p/14660088.html