java中接口和抽象類最大的區別在於抽象類能夠提供某些方法的具體實現,而接口則不能夠。java
在語法上接口和抽象類有如下不一樣點:繼承
一、抽象類在java中表示的是一種繼承關係,一個類只能使用一次繼承關係,可是一個類能夠實現多個接口;接口
二、繼承抽象類使用extends關鍵字,實現接口使用implements關鍵字,繼承寫在前面,實現接口寫在後面;變量
三、在抽象類中能夠有本身的數據成員,也能夠有非抽象類的成員方法,而接口中只能有靜態的(static)不能被修改的(final)數據成員,全部的成員方法都是抽象的(abstract);語法
四、實現抽象類和接口的類必須實現其中的全部方法(抽象方法)。抽象類中能夠有非抽象方法,而接口中則不能夠有方法的實現;方法
五、抽象類中的變量默認在子類中能夠從新定義,也能夠從新賦值,而接口中定義的變量默認是public static final型,且必須賦值與初始化,因此實現類中不能從新定義與從新賦值;im