java基礎-介面

運氣可以啊發表於2020-12-23

介面與類相似點:

一個介面可以有多個方法。
介面檔案儲存在 .java 結尾的檔案中,檔名使用介面名。
介面的位元組碼檔案儲存在 .class 結尾的檔案中。
介面相應的位元組碼檔案必須在與包名稱相匹配的目錄結構中。

介面與類的區別:

介面不能用於例項化物件。
介面沒有構造方法。
介面中所有的方法必須是抽象方法。
介面不能包含成員變數,除了 static 和 final 變數。
介面不是被類繼承了,而是要被類實現。
介面支援多繼承。(一個類可以實現多個介面)

介面特性

介面中每一個方法也是隱式抽象的,介面中的方法會被隱式的指定為 public abstract(只能是 public abstract,其他修飾符都會報錯)。
介面中可以含有變數,但是介面中的變數會被隱式的指定為 public static final 變數(並且只能是 public,用 private 修飾會報編譯錯誤)。
介面中的方法是不能在介面中實現的,只能由實現介面的類來實現介面中的方法。

抽象類和介面的區別

1. 抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是介面中的方法不行。
2. 抽象類中的成員變數可以是各種型別的,而介面中的成員變數只能是 public static final 型別的。
3. 介面中不能含有靜態程式碼塊以及靜態方法(用 static 修飾的方法),而抽象類是可以有靜態程式碼塊和靜態方法。
4. 一個類只能繼承一個抽象類,而一個類卻可以實現多個介面。

重寫介面中宣告的方法時,需要注意以下規則:

類在實現介面的方法時,不能丟擲強制性異常,只能在介面中,或者繼承介面的抽象類中丟擲該強制性異常。
類在重寫方法時要保持一致的方法名,並且應該保持相同或者相相容的返回值型別。
如果實現介面的類是抽象類,那麼就沒必要實現該介面的方法。

在實現介面的時候,也要注意一些規則:

一個類可以同時實現多個介面。
一個類只能繼承一個類,但是能實現多個介面。
一個介面能繼承另一個介面,這和類之間的繼承比較相似

相關文章