接口和抽象類的區別是什麼
-
接口的方法默認是 public,所有方法在接口中不能有實現(Java 8 開始接口方法可以有默認實現),抽象類可以有非抽象的方法
-
接口中的實例變量默認是 final 類型的,而抽象類中則不一定
-
一個類可以實現多個接口,但最多隻能實現一個抽象類
-
一個類實現接口的話要實現接口的所有方法,而抽象類不一定
-
接口不能用 new 實例化,但可以聲明,但是必須引用一個實現該接口的對象 從設計層面來說,抽象是對類的抽象,是一種模板設計,接口是行爲的抽象,是一種行爲的規範。
備註:在JDK8中,接口也可以定義靜態方法,可以直接用接口名調用。實現類和實現是不可以調用的。如果同時實現兩個接口,接口中定義了一樣的默認方法,必須重寫,不然會報錯。