Java 8 中預設介面方法和靜態介面方法的區別。


根據 Oracle 的 Javadocs -

預設方法使您能夠向庫的介面新增新功能,並確保與為這些介面的舊版本編寫的程式碼的二進位制相容性。

一個靜態方法是與定義它的類關聯的方法,而不是與任何物件關聯。類的每個例項都共享其靜態方法。

介面中的靜態方法是介面類的一部分,不能實現或覆蓋它,而類可以覆蓋預設方法。

序號關鍵靜態介面方法預設方法
1
基礎
它是一個僅屬於介面的靜態方法。我們可以在介面本身中編寫此方法的實現。
它是一個帶有 default 關鍵字的方法,類可以覆蓋此方法。
2
方法呼叫
靜態方法只能在介面類上呼叫,不能在類上呼叫。
它可以在介面和類上呼叫。
3
方法名
介面和實現類都可以具有相同名稱的靜態方法,而不會相互覆蓋。
我們可以在實現類中覆蓋預設方法。
4.
用例
它可以用作實用程式方法。
它可以用來在所有實現類中提供通用功能。

介面中預設方法和靜態方法的示例

public interface DefaultStaticExampleInterface {
   default void show() {
      System.out.println("In Java 8- default method - DefaultStaticExampleInterface");
   }
   static void display() {
      System.out.println("In DefaultStaticExampleInterface I");
   }
}
public class DefaultStaticExampleClass implements DefaultStaticExampleInterface {
}
public class Main {
   static void main(String args[]) {
      // Call interface static method on Interface
      DefaultStaticExampleInterface.display();
      DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass();
     
      // Call default method on Class
      defaultStaticExampleClass.show();
   }
}

更新於: 2023-10-31

26K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告