三、接口的繼承性【基礎重點】
1. Java中的接口之間的繼承關系是多繼承,一個接口可以有多個父接口
(1) 語法:interface 接口名 extends 父接口1,父接口2{}
2. 類和接口之間是多實現的關系:一個類可以同時實現多個接口
(1) 語法:class 類名 implements 接口名1,接口2{}
(2) 注意:一個類同時實現多個接口,如果這個類不想成為抽象類,則必須實現所有接口中所有方法;而且每一個方法的訪問修飾符都是public
3. 一個類繼承一個父類的同時可以實現多個接口
(1) 語法:class 類名 extends 父類名 implements 接口名1,接口名2{}
(2) 注意:必須是先繼承后實現。(單繼承多實現)
四、接口多繼承的影響【了解】
1. 如果引用之間相互強制類型轉換,轉換的一方為接口類型的引用,則編譯一定通過,但是運行的時候分以下兩種情況:
(1) 引用中實際存儲的對象類型 和 要轉換的類型一致,則運行通過
(2) 引用中實際存儲的對象類型 和 要轉換的類型不一致,則運行報錯,錯誤信息為:
java.lang.ClassCastException(類型轉換異常)
五、接口的作用【理解+開發應用】
1. 可以擴充子類的能力
(1) 由于Java中類之間是單繼承,當子類從父類中繼承功能方法不足以滿足子類功能需求時,可以借助接口擴充子類的能力
(2) 通常將主要功能定義在父類中,次要的功能(擴展的功能)定義在接口中。
2. 降低程序中的耦合度
接口定義好之后,將接口的實現者和接口的使用者分離,借助多態,降低各模塊之間的耦合度。
六、接口的回調【理解】
1. 接口回調:接口定義之后,先有接口的使用者,再有接口的實現者。
2. 注意:遇到接口回調的應用,開發人員需要關注的是根據接口規范,給予接口的實現部分。
總結:接口和抽象類的區別?【面試重點】
接口 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 抽象類
關鍵字 ? ? ? ? ? ? ?interface ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? abstract ? ? ? ?class
屬性 ? ? ? ? ? 公開、靜態、常量 ? ? ? ? ? ? ? 沒有要求(實例變量+靜態變量+對fifinal沒有要求)
public static fifinal
方法: ? ? ? ? ?公開、抽象方法 ? ? ? ? ? ? ? ? ? ? ? ?抽象方法+非抽象方法
public abstract
構造方法: ? ? ? ? ? 沒有 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有構造方法
繼承關系: ? ? ? ? 多繼承 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 單繼承
————————————————
? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
原文鏈接:https://blog.csdn.net/Halo_tjn/article/details/148113539