欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Java接口的相關(guān)知識(shí)

 更新時(shí)間:2021年06月24日 10:23:45   作者:liaofeifei_book  
今天給大家?guī)?lái)的是關(guān)于Java基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Java接口展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

一、接口概述

接口,是Java語(yǔ)言中一種引用類型,是方法的集合,如果說(shuō)類的內(nèi)部封裝了成員變量、構(gòu)造方法、成員方法,那么接口的內(nèi)部主要就是封裝了方法,包含抽象方法(JDK 7及以前)、默認(rèn)方法和靜態(tài)方法(JDK8),私有方法(JDK9)。

二、定義格式

接口格式

public interface 接口名稱 {
    // 抽象方法
    // 默認(rèn)方法
    // 靜態(tài)方法
    // 私有方法
}

接口不能直接使用,必須有一個(gè)“實(shí)現(xiàn)類"來(lái)”實(shí)現(xiàn)接口“。

實(shí)現(xiàn)類格式:

public class 實(shí)現(xiàn)類名稱 implements 接口名稱{
    //覆蓋重寫(xiě)接口中的抽象方法【必須】
    //重寫(xiě)接口中的默認(rèn)方法【可選】
}

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

2.創(chuàng)建實(shí)現(xiàn)類的對(duì)象,進(jìn)行使用。

注意事項(xiàng):

如果實(shí)現(xiàn)類并沒(méi)有覆蓋重寫(xiě)接口中所有的抽象方法,那么這個(gè)實(shí)現(xiàn)類自己就必須是抽象類。

2.1 抽象方法

抽象方法:使用abstract關(guān)鍵字修飾,可以省略,沒(méi)有方法體。該方法供子類實(shí)現(xiàn)使用。

代碼如下:

public interface 接口名稱 {
    public abstract void 方法名稱();
}

注意事項(xiàng):

1.抽象方法中的修飾符必須是兩個(gè)固定的關(guān)鍵字:public abstract。這兩個(gè)關(guān)鍵字修飾符,可以選擇性省略。

2.方法的三要素,可以隨意定義。

3.接口的實(shí)現(xiàn)類必須覆蓋重寫(xiě)所有的抽象方法。

2.2 默認(rèn)方法和靜態(tài)方法

  • 默認(rèn)方法:使用default關(guān)鍵字修飾,不可省略,供子類調(diào)用或者子類重寫(xiě)。

備注:接口當(dāng)中的默認(rèn)方法,可以解決接口升級(jí)的問(wèn)題。

  • 靜態(tài)方法:使用static關(guān)鍵字修飾,供接口直接調(diào)用。
public interface 接口名稱{
    // 默認(rèn)方法
    public default void 方法名稱(){
        // 方法體
    }
    
    // 靜態(tài)方法
    public static void 方法名稱(){
        // 方法體
    }
}

靜態(tài)方法使用注意事項(xiàng)

不能通過(guò)接口實(shí)現(xiàn)類的對(duì)象來(lái)調(diào)用接口當(dāng)中的靜態(tài)方法。

正確用法:通過(guò)接口名稱,直接調(diào)用其中的靜態(tài)方法。

格式

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

2.3 私有方法

私有方法:使用private修飾,供接口中的默認(rèn)方法或者靜態(tài)方法調(diào)用。

格式如下:

public interface 接口名稱{
    // 普通私有方法,解決多個(gè)默認(rèn)方法之間的重復(fù)代碼問(wèn)題
    private 返回值類型 方法名稱(參數(shù)列表){
        // 執(zhí)行語(yǔ)句
    }
    // 靜態(tài)私有方法,解決多個(gè)靜態(tài)方法之間重復(fù)代碼問(wèn)題
    private static 返回值類型 方法名稱(參數(shù)列表){
        // 執(zhí)行語(yǔ)句
    }
}

2.4 成員變量

接口中也可以定義“成員變量”,但是必須使用public static final三個(gè)關(guān)鍵字進(jìn)行修飾。

從效果上來(lái)看,這其實(shí)就是接口中的【常量】。

格式:

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

注意事項(xiàng):

1.public、staticfinal三個(gè)關(guān)鍵字都可以省略。

2.接口中的常量,必須進(jìn)行賦值,不能不賦值。

3.接口中的常量名稱,使用的字符必須全部大寫(xiě),用下劃線進(jìn)行分隔。

三、接口的注意事項(xiàng)

1.接口是沒(méi)有靜態(tài)代碼塊或者構(gòu)造方法的。

2.一個(gè)類的直接父類是唯一的,但是一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口。

格式:

public class 類名稱 implements 接口1,接口2,...{
    // 覆蓋重寫(xiě)所有抽象方法
}

3.如果實(shí)現(xiàn)類所實(shí)現(xiàn)的多個(gè)接口當(dāng)中,存在重復(fù)的抽象方法,那么只需要覆蓋重寫(xiě)一次即可。

4.如果實(shí)現(xiàn)類沒(méi)有覆蓋重寫(xiě)所有接口當(dāng)中的所有抽象方法,那么實(shí)現(xiàn)類就必須是一個(gè)抽象類。

5.如果實(shí)現(xiàn)類所實(shí)現(xiàn)的多個(gè)接口當(dāng)中,存在重復(fù)的默認(rèn)方法,那么實(shí)現(xiàn)類一定要對(duì)沖突的默認(rèn)方法進(jìn)行覆蓋重寫(xiě)。

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

四、接口的特點(diǎn)

  • 多實(shí)現(xiàn)性:一個(gè)類可以實(shí)現(xiàn)多個(gè)接口
  • 多繼承性:一個(gè)接口可以繼承多個(gè)接口。

注意事項(xiàng):

1.多個(gè)父接口當(dāng)中的抽象方法如果重復(fù),沒(méi)關(guān)系,不要管。

2.多個(gè)父接口當(dāng)中的默認(rèn)方法如果重復(fù),那么子接口必須進(jìn)行默認(rèn)方法的覆蓋重寫(xiě),【而且?guī)е鴇efault關(guān)鍵字】。

到此這篇關(guān)于詳解Java接口的相關(guān)知識(shí)的文章就介紹到這了,更多相關(guān)Java接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring之ORM模塊代碼詳解

    Spring之ORM模塊代碼詳解

    這篇文章主要介紹了Spring之ORM模塊代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低碼開(kāi)發(fā)框架,本文主要介紹了springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • SpringBoot整合Freemarker的基本步驟

    SpringBoot整合Freemarker的基本步驟

    這篇文章主要介紹了SpringBoot整合Freemarker的基本步驟,添加依賴及添加相關(guān)配置的實(shí)例代碼詳解,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • java并發(fā)編程中的SynchronousQueue實(shí)現(xiàn)原理解析

    java并發(fā)編程中的SynchronousQueue實(shí)現(xiàn)原理解析

    這篇文章主要介紹了java并發(fā)編程中的SynchronousQueue實(shí)現(xiàn)原理解析,SynchronousQueue是一個(gè)比較特別的隊(duì)列,此隊(duì)列源碼中充斥著大量的CAS語(yǔ)句,理解起來(lái)是有些難度的,為了方便日后回顧,本篇文章會(huì)以簡(jiǎn)潔的圖形化方式展示該隊(duì)列底層的實(shí)現(xiàn)原理,需要的朋友可以參考下
    2023-12-12
  • 對(duì)ThreadLocal內(nèi)存泄漏及弱引用的理解

    對(duì)ThreadLocal內(nèi)存泄漏及弱引用的理解

    這篇文章主要介紹了對(duì)ThreadLocal內(nèi)存泄漏及弱引用的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • IDEA新手必備之各種快捷鍵詳解

    IDEA新手必備之各種快捷鍵詳解

    這篇文章主要介紹了IDEA新手必備之各種快捷鍵詳解,文中有非常詳細(xì)的快捷鍵介紹,對(duì)正在使用IDEA的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java Arrays.sort()如何實(shí)現(xiàn)對(duì)int類型數(shù)組倒序排序

    Java Arrays.sort()如何實(shí)現(xiàn)對(duì)int類型數(shù)組倒序排序

    這篇文章主要介紹了Java Arrays.sort()如何實(shí)現(xiàn)對(duì)int類型數(shù)組倒序排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MyBatis流式查詢的三種實(shí)現(xiàn)方法

    MyBatis流式查詢的三種實(shí)現(xiàn)方法

    流式查詢指的是查詢成功后不是返回一個(gè)集合而是返回一個(gè)迭代器,應(yīng)用每次從迭代器取一條查詢結(jié)果,本文介紹了MyBatis流式查詢的實(shí)現(xiàn),感興趣的可以了解一下
    2021-05-05
  • 基于maven的ssm框架整合的示例代碼

    基于maven的ssm框架整合的示例代碼

    本篇文章主要介紹了基于maven的ssm框架整合的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問(wèn)題解決

    Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問(wèn)題解決

    這篇文章主要為大家介紹了Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問(wèn)題解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論