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

java基礎(chǔ)之接口組成更新的實(shí)現(xiàn)

 更新時(shí)間:2022年04月12日 11:41:24   作者:小袁ITSuper  
本文主要介紹了java基礎(chǔ)之接口組成更新的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.1 接口組成更新概述

  • 接口的組成
    • 常量:public static final
    • 抽象方法:public abstract
    • 默認(rèn)方法(Java 8)
    • 靜態(tài)方法(Java 8)
    • 私有方法(Java 9)

1.2 接口中默認(rèn)方法(JDK8)

我們都知道,一個(gè)類(lèi)實(shí)現(xiàn)一個(gè)接口,就要重寫(xiě)這個(gè)接口中的所有抽象方法。但現(xiàn)在接口中新增了一個(gè)方法,實(shí)現(xiàn)這個(gè)接口的類(lèi)不想重寫(xiě)這個(gè)方法怎么辦?這時(shí)就可以使用接口中默認(rèn)方法,它不強(qiáng)制被重寫(xiě),而且還可以提供方法體。

  • 接口中默認(rèn)方法的定義格式:
    • 格式:public default 返回值類(lèi)型 方法名(參數(shù)列表){}
    • 范例:public default void show(){}
  • 接口中默認(rèn)方法的注意事項(xiàng):
    • 默認(rèn)方法不是抽象方法,所以不強(qiáng)制被重寫(xiě)。但是可以被重寫(xiě),重寫(xiě)的時(shí)候去掉default關(guān)鍵字
    • public可以省略,default不能省略:default void show(){}

1.3 接口中靜態(tài)方法(JDK8)

  • 接口中靜態(tài)方法的定義格式:

    • 格式:public static 返回值類(lèi)型 方法名(參數(shù)列表){}
    • 范例:public static void show(){}
  • 接口中靜態(tài)方法的注意事項(xiàng):

    • 靜態(tài)方法只能通過(guò)接口名調(diào)用, 不能通過(guò)實(shí)現(xiàn)類(lèi)名或者對(duì)象名調(diào)用
    • public可以省略, static不能省略:static void show(){}
  • 接口

package test;

public interface Inter {
    void show();

    default void method() {
        System.out.println("默認(rèn)方法");
    }

//    public static void test(){
//        System.out.println("靜態(tài)方法");
//    }

    static void test(){
        System.out.println("靜態(tài)方法");
    }
}
  • 實(shí)現(xiàn)類(lèi)
package test;

public class InterImpl implements Inter{
    @Override
    public void show() {
        System.out.println("show方法");
    }
}
  • 測(cè)試類(lèi)
package test;

public class Demo {
    public static void main(String[] args) {
        Inter i = new InterImpl();
        i.show(); //show方法
        i.method(); //
//        i.test(); //報(bào)錯(cuò)

        Inter.test(); //靜態(tài)方法,接口名調(diào)用靜態(tài)方法
    }
}

1.4 接口中私有方法(JDK9)

Java 9 中新增了帶方法體的私有方法,這其實(shí)在 Java 8 中就埋下了伏筆:Java 8 允許在接口中定義帶方法體的默認(rèn)方法和靜態(tài)方法。這樣可能就會(huì)引發(fā)一個(gè)問(wèn)題:當(dāng)兩個(gè)默認(rèn)方法或者靜態(tài)方法中包含一段相同的代碼實(shí)現(xiàn)時(shí),程序必然考慮將這段實(shí)現(xiàn)代碼抽取成一個(gè)共性方法,而這個(gè)共性方法是不需要讓別人使用的,因此用私有給隱藏起來(lái),這就是 Java 9 增加私有方法的必然性 。

  • 接口中私有方法的定義格式
    • 格式1(非靜態(tài))private 返回值類(lèi)型 方法名(參數(shù)列表){}
    • 范例1:private void show() {}
    • 格式2(靜態(tài))private static 返回值類(lèi)型 方法名(參數(shù)列表){}
    • 范例2:private static void method() {}
  • 接口中私有方法的注意事項(xiàng)
    • 默認(rèn)方法可以調(diào)用私有的靜態(tài)方法和非靜態(tài)方法
    • 靜態(tài)方法只能調(diào)用私有的靜態(tài)方法
package test;

public interface Inter {
    default void show1() {
        System.out.println("show1開(kāi)始執(zhí)行");
//        System.out.println("初級(jí)工程師");
//        System.out.println("中級(jí)工程師");
//        System.out.println("高級(jí)工程師");
//        show();
        method();
        System.out.println("show1結(jié)束");
    }


    static void method1() {
        System.out.println("method1開(kāi)始執(zhí)行");
//        System.out.println("初級(jí)工程師");
//        System.out.println("中級(jí)工程師");
//        System.out.println("高級(jí)工程師");
        method();
        System.out.println("method1結(jié)束");
    }

    private void show(){
        System.out.println("初級(jí)工程師");
        System.out.println("中級(jí)工程師");
        System.out.println("高級(jí)工程師");
    }

    private static void method(){
        System.out.println("初級(jí)工程師");
        System.out.println("中級(jí)工程師");
        System.out.println("高級(jí)工程師");
    }
}

到此這篇關(guān)于java基礎(chǔ)之接口組成更新的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)java 接口組成更新內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • eclipse輸出Hello World的實(shí)現(xiàn)方法

    eclipse輸出Hello World的實(shí)現(xiàn)方法

    這篇文章主要介紹了eclipse輸出Hello World的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringBoot 如何讀取classpath下的文件

    SpringBoot 如何讀取classpath下的文件

    這篇文章主要介紹了SpringBoot 讀取classpath下的文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot如何打包自定義生成的包名

    SpringBoot如何打包自定義生成的包名

    這篇文章主要介紹了SpringBoot如何打包自定義生成的包名問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java之單鏈表問(wèn)題解決案例講解

    Java之單鏈表問(wèn)題解決案例講解

    這篇文章主要介紹了Java之單鏈表問(wèn)題解決案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java虛擬機(jī)指令dup詳解

    java虛擬機(jī)指令dup詳解

    這篇文章主要為大家詳細(xì)介紹了java虛擬機(jī)指令dup,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • SpringCloud超詳細(xì)講解負(fù)載均衡組件Ribbon源碼

    SpringCloud超詳細(xì)講解負(fù)載均衡組件Ribbon源碼

    在微服務(wù)中,對(duì)服務(wù)進(jìn)行拆分之后,必然會(huì)帶來(lái)微服務(wù)之間的通信需求,而每個(gè)微服務(wù)為了保證高可用性,又會(huì)去部署集群,那么面對(duì)一個(gè)集群微服務(wù)進(jìn)行通信的時(shí)候,如何進(jìn)行負(fù)載均衡也是必然需要考慮的問(wèn)題
    2022-07-07
  • 使用Java進(jìn)行圖像處理的一些基礎(chǔ)操作

    使用Java進(jìn)行圖像處理的一些基礎(chǔ)操作

    這篇文章主要介紹了使用Java進(jìn)行圖像處理的一些基礎(chǔ)操作,就載入和輸出相關(guān)的知識(shí)進(jìn)行了講解,需要的朋友可以參考下
    2015-10-10
  • Java探索之Thread+IO文件的加密解密代碼實(shí)例

    Java探索之Thread+IO文件的加密解密代碼實(shí)例

    這篇文章主要介紹了Java探索之Thread+IO文件的加密解密代碼實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Java Http多次請(qǐng)求復(fù)用同一連接示例詳解

    Java Http多次請(qǐng)求復(fù)用同一連接示例詳解

    這篇文章主要為大家介紹了Java Http多次請(qǐng)求復(fù)用同一連接示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法

    JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法

    本文主要介紹了JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論