java學(xué)習(xí)筆記(十)接口

個(gè)人筆記,僅供參考

1、概念

接口即一種公共規(guī)范標(biāo)準(zhǔn)

只要符合標(biāo)準(zhǔn),就可以通用

2、定義基本格式

接口就是多個(gè)類的公共規(guī)范,是引用數(shù)據(jù)類型

最重要的就是其中的抽象方法

public interface 接口名稱{
    //接口內(nèi)容
}

備注:編譯生成的字節(jié)碼文件還是.class

可以包含的內(nèi)容:

1、常量(java7)

2、抽象方法(java7)

3、默認(rèn)方法(java8)

4、靜態(tài)方法(java8)

5、私有方法(java9)

3、定義

創(chuàng)建接口時(shí)要選擇interface

public interface interfaceDemo {
    //抽象方法
    public abstract void methodAbs1();
    //接口中抽象方法必須用兩個(gè)固定的修飾符
    //可以選擇性省略
    public abstract void methodAb2();
    abstract void methodAbs3();
    void methodAbs4();
    //方法三要素可以隨意定義
}

4、接口使用步驟

1、不能直接使用,必須有一個(gè)實(shí)現(xiàn)類,來實(shí)現(xiàn)該接口

public class 實(shí)現(xiàn)類名稱 implements 接口名稱{
//...
}

2、接口的實(shí)現(xiàn)類必須覆蓋重寫(實(shí)現(xiàn))接口中所有的抽象方法,去掉abstract關(guān)鍵字,加大括號(hào)

3、創(chuàng)建實(shí)現(xiàn)類的對(duì)象,使用

注意:如果實(shí)現(xiàn)類沒有覆蓋重寫所有抽象方法,那他自己就必須是抽象類

5、接口的默認(rèn)方法

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

解決接口升級(jí)的問題,默認(rèn)方法會(huì)被實(shí)現(xiàn)類繼承

1、接口的默認(rèn)方法,可以通過實(shí)現(xiàn)類對(duì)象直接調(diào)用

2、接口的默認(rèn)方法,也可以用過接口實(shí)現(xiàn)類覆蓋重寫

6、接口的靜態(tài)方法

格式:

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

使用:

1、不能通過接口實(shí)現(xiàn)類對(duì)象來直接調(diào)用接口中的靜態(tài)方法

2、通過接口名稱直接調(diào)用

? 接口名稱.靜態(tài)方法名(參數(shù))

7、接口的私有方法

java9才有

有時(shí)候需要抽取一個(gè)公共方法來解決代碼重復(fù)的問題,但使用默認(rèn)方法會(huì)讓實(shí)現(xiàn)類也繼承下去,此時(shí)應(yīng)使用私有方法

1、普通私有方法:解決對(duì)個(gè)默認(rèn)方法之間代碼重復(fù)問題

2、靜態(tài)私有方法:解決多個(gè)靜態(tài)方法之間代碼重復(fù)問題

格式:

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

8、接口的常量定義和使用

接口當(dāng)中也可以定義"成員變量",但是必須使用public static final 三個(gè)關(guān)鍵字修飾,其實(shí)就是接口的常量

格式

public static final 數(shù)據(jù)類型 常量名稱 = 數(shù)據(jù)值

final為不可變

可以省略這三個(gè)關(guān)鍵字

接口中的常量必須賦值

注意:常量名稱用大寫,用下劃線分隔

使用:接口名稱.常量名稱

9、繼承父類并實(shí)現(xiàn)多個(gè)接口

public class MyInterfaceImpl implments MyInterfaceA, MyInterfaceB{
    //覆蓋重寫所有抽象方法
}

如果實(shí)現(xiàn)的多個(gè)接口中存在重復(fù)的抽象方法,只要覆蓋重寫一次即可。

如果實(shí)現(xiàn)的多個(gè)接口有重復(fù)的默認(rèn)方法,那么實(shí)現(xiàn)類要對(duì)沖突的默認(rèn)方法覆蓋重寫

一個(gè)類如果直接父類當(dāng)中的方法和接口當(dāng)中的默認(rèn)方法產(chǎn)生了沖突,優(yōu)先用父類的方法

10、接口之間的多繼承

1、類與類之間是單繼承的,直接父類只有一個(gè)

2、類與接口之間是多實(shí)現(xiàn)的,一個(gè)類 可以實(shí)現(xiàn)多個(gè)接口

3、接口與接口之間是多繼承的,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容