我們可以在 Java 中覆蓋預設方法嗎?


Java 中的介面與類類似,但是隻包含最終且為靜態的抽象方法和欄位。

自從 Java8 之後,在介面中引入了靜態方法和預設方法。與其他抽象方法不同,這些方法可以擁有預設實現。如果在介面中有預設方法,那麼在已經實現該介面的類中覆蓋(提供主體)該方法並不是必須的。

簡而言之,你可以使用實現類的物件來訪問介面的預設方法。

示例

即時演示

interface MyInterface{  
   public static int num = 100;
   public default void display() {
      System.out.println("display method of MyInterface");
   }
}
public class InterfaceExample implements MyInterface{
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.display();
   }
}

輸出

display method of MyInterface

覆蓋預設方法

你可以在實現類中覆蓋介面的預設方法。

示例

即時演示

interface MyInterface{  
   public static int num = 100;
   public default void display() {
      System.out.println("display method of MyInterface");
   }
}
public class InterfaceExample implements MyInterface{
   public void display() {
      System.out.println("display method of class");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.display();
   }
}

輸出

display method of class

更新於: 2021 年 2 月 8 日

7K+ 瀏覽

啟動您的 職業

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.