溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java接口組成更新怎么實現

發布時間:2022-04-12 13:44:48 來源:億速云 閱讀:468 作者:iii 欄目:開發技術

這篇文章主要介紹“java接口組成更新怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java接口組成更新怎么實現”文章能幫助大家解決問題。

1.1 接口組成更新概述

  • 接口的組成

    • 常量:public static final

    • 抽象方法:public abstract

    • 默認方法(Java 8)

    • 靜態方法(Java 8)

    • 私有方法(Java 9)

1.2 接口中默認方法(JDK8)

我們都知道,一個類實現一個接口,就要重寫這個接口中的所有抽象方法。但現在接口中新增了一個方法,實現這個接口的類不想重寫這個方法怎么辦?這時就可以使用接口中默認方法,它不強制被重寫,而且還可以提供方法體。

  • 接口中默認方法的定義格式:

    • 格式:public default 返回值類型 方法名(參數列表){}

    • 范例:public default void show(){}

  • 接口中默認方法的注意事項:

    • 默認方法不是抽象方法,所以不強制被重寫。但是可以被重寫,重寫的時候去掉default關鍵字

    • public可以省略,default不能省略:default void show(){}

1.3 接口中靜態方法(JDK8)

  • 接口中靜態方法的定義格式:

    • 格式:public static 返回值類型 方法名(參數列表){}

    • 范例:public static void show(){}

  • 接口中靜態方法的注意事項:

    • 靜態方法只能通過接口名調用, 不能通過實現類名或者對象名調用

    • public可以省略, static不能省略:static void show(){}

  • 接口

package test;

public interface Inter {
    void show();

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

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

    static void test(){
        System.out.println("靜態方法");
    }
}
  • 實現類

package test;

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

package test;

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

        Inter.test(); //靜態方法,接口名調用靜態方法
    }
}

1.4 接口中私有方法(JDK9)

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

  • 接口中私有方法的定義格式

    • 格式1(非靜態)private 返回值類型 方法名(參數列表){}

    • 范例1:private void show() {}

    • 格式2(靜態)private static 返回值類型 方法名(參數列表){}

    • 范例2:private static void method() {}

  • 接口中私有方法的注意事項

    • 默認方法可以調用私有的靜態方法和非靜態方法

    • 靜態方法只能調用私有的靜態方法

package test;

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


    static void method1() {
        System.out.println("method1開始執行");
//        System.out.println("初級工程師");
//        System.out.println("中級工程師");
//        System.out.println("高級工程師");
        method();
        System.out.println("method1結束");
    }

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

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

關于“java接口組成更新怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女