java中接口和抽象类最大的区别在于抽象类能够提供某些方法的具体实现,而接口则不能够。java
在语法上接口和抽象类有如下不一样点:继承
一、抽象类在java中表示的是一种继承关系,一个类只能使用一次继承关系,可是一个类能够实现多个接口;接口
二、继承抽象类使用extends关键字,实现接口使用implements关键字,继承写在前面,实现接口写在后面;变量
三、在抽象类中能够有本身的数据成员,也能够有非抽象类的成员方法,而接口中只能有静态的(static)不能被修改的(final)数据成员,全部的成员方法都是抽象的(abstract);语法
四、实现抽象类和接口的类必须实现其中的全部方法(抽象方法)。抽象类中能够有非抽象方法,而接口中则不能够有方法的实现;方法
五、抽象类中的变量默认在子类中能够从新定义,也能够从新赋值,而接口中定义的变量默认是public static final型,且必须赋值与初始化,因此实现类中不能从新定义与从新赋值;im