Java中接口的基礎介紹

1-1.接口的概述

接口,就是一種公共的規範標準。java

只要符合規範標準,就能夠你們通用。對象

1-2.接口的定義及規則

接口就是多個類的公共規範。繼承

接口是一種引用數據類型,最重要的內容就是期中的抽象方法,接口

定義接口的格式:編譯

      public interface 接口名稱{接口內容}class

備註:變量

1).換成了關鍵字interface以後,編譯生成的字節碼文件仍然是".java"---->".class"數據類型

2).在Java7中,接口中能夠包含的有:常量和抽象方法。引用

3).在Java8中,接口中能夠包含的有:默認方法和靜態方法。方法

4).在Java9中,接口中能夠包含的有:私有方法。

1-3.接口中的抽象方法的定義

在任何版本的Java中,接口都能定義抽象方法(抽象方法都沒有方法體)。

格式:

      public abstract 返回值類型 方法名稱(參數列表)

注意:

1).接口中的抽象方法的修飾詞必須是這兩個固定的關鍵字:public abstract。

2).這兩個關鍵字能夠選擇性省略,但不推薦。

3).方法的三要素能夠隨意編寫。方法的三要素:返回值類型,方法名,參數列表。

1-4.接口的抽象方法的使用步驟

1).接口不能直接使用,必須有一個「實現類」來「實現」接口。

格式以下:

      public class 實現類名稱 implements 接口名稱{ //...}

2).接口實現類必需要所有覆蓋重寫(實現)接口中全部的抽象方法。

實現:去掉abstract關鍵字,加上方法體大括號。

3).經過建立實現類對象,進行使用。

注意:若是實現類沒有覆蓋重寫全部的的抽象方法,那麼這個實現類必須是抽象類,不然會編譯報錯。

2-1.接口的默認方法的定義和使用

從Java8開始,接口裏容許定義默認方法。

格式以下:

      public default 返回值類型 方法名(參數列表){方法體}

備註:接口中的默認方法,能夠解決接口升級的問題。

接口的默認方法,能夠經過實現類對象直接調用,也能夠被實現類進行覆蓋重寫。

2-2.接口的靜態方法的定義和使用

從Java8開始,接口當中容許定義靜態方法。

格式:

      public static 返回值類型 方法名 (參數列表){方法體}

即,把默認方法定義中的default換成static便可。

接口的靜態方法不能經過接口實現類進行調用,正確用法應該是經過接口名稱直接調用其中的靜態方法。

格式以下:

      接口名稱.靜態方法(參數);

2-3.接口的私有定義和使用

從Java9開始,接口當中容許定義私有方法:

1).普通的私有方法,能夠解決多個默認方法之間的重複代碼問題。

格式以下:

      private 返回值類型 方法名(參數列表){方法體}

2).靜態私有方法,能夠解決多個靜態方法之間的重複代碼問題。

格式:

      private static 返回值類型 方法名稱(參數列表){方法體}

接口的私有方法按照格式便可使用。

2-4.接口的常量的定義和使用

接口當中也能夠定義「成員變量」,可是必須使用public static final 這三個關鍵字進行修飾,從效果上看,這其實就是接口的[常量]。

格式以下:

      public static final 數據類型 常量名稱 = 數據值;

注意:

1).一旦使用了final關鍵字進行修飾,說明該成員變量將不可改變。

2).接口中的常量能夠省略public static final ,注意不屑也照樣是不可改變的。

3).接口當中的常量,必須進行手動賦值(在加上final後,成員變量將沒有默認值),不能夠不寫,且不可修改。

4).接口當中的常量名稱,使用徹底大寫的字母,用下劃線進行單詞之間的分隔。

2-5.接口和類的繼承的簡單小結

1).接口不能有靜態代碼塊或者構造方法。

2).一個類的直接父類是惟一的,但一個類能夠實現多個接口。

格式以下:

      public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{覆蓋重寫全部抽象方法}

3).若是實現類所實現的多個接口中,有重複的抽象方法,那麼只用覆蓋重寫一次便可。

4).若是是是實現類沒有覆蓋重寫全部的抽象方法,那麼實現類必定是一個抽象類。

5).若是實現類所實現的多個接口中,存在重複的默認方法,那麼實現類必須對衝突的默認方法進行覆蓋重寫。

6).一個類若是直接父類當中的方法和接口中的默認方法產生衝突,優先選用父類當中的方法。

7).類與類之間是單繼承的,直接父類只有一個。

8).類與接口之間是能夠多實現的,一個類能夠有多個接口。

9).接口與接口之間是能夠多繼承的。

10).多個父接口之間的抽象方法若是重複,是不要緊的,但默認方法若是重複,那麼子接口必須進行默認方法的覆蓋重寫,並且須要帶有default關鍵字。

相關文章
相關標籤/搜索