簡體   English   中英

java8接口允許公共默認方法

[英]java8 Interface allowing public default method

在java 8中,默認方法實現可以同時使用publicdefault修飾符。 以下兩種方法的主要區別是什么? 在哪種條件下需要遵循哪種類型。

default int makeMul(int x, int y) {
    return x * y;
}

public default int makeMul(int x, int y) {
    return x * y;
}

這里的默認方法沒什么特別之處。 Java一直允許將接口方法聲明為public,即使它們已經隱式公開。

來自JLS 9.4

接口主體中的每個方法聲明都是隱式公共的(第6.6節)。 允許但不鼓勵作為樣式,在接口中冗余地指定方法聲明的公共修飾符。

正如其他人所建議的那樣, default關鍵字有兩個主要用途:

  • 在Java 8之前,它只能用於在switch-case語句中觸發默認情況。
  • 從Java 8開始,允許開發人員在接口內部提供實現的方法(之前是不可能的),在方法的聲明中使用default關鍵字( public default int method() )。

據我所知,在一個簡單的類中 ,在方法聲明中使用default關鍵字,根本沒有任何區別。

有關接口中default方法的目的的廣泛討論,請參閱Java 8中的Default或Defender方法的目的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM