為什麼我們無法在 Java 介面中定義一個靜態方法?


從 Java 8 開始,允許在 Java 介面中使用靜態方法。

從 Java 8 開始,介面還可以具有靜態幫助器方法。 

public interface vehicle {
   default void print() {
      System.out.println("I am a vehicle!");
   }
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

預設方法示例

在你說在 C:\> JAVA 中,使用任意你選的編輯器建立以下 Java 程式。

Java8Tester.java

即時演示

public class Java8Tester {
   public static void main(String args[]) {
      Vehicle vehicle = new Car(); vehicle.print();
   }
}

interface Vehicle {
   default void print() {
      System.out.println("I am a vehicle!");
   }
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {
   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

驗證結果

使用 javac 編譯器編譯類,如下所示 −

C:\JAVA>javac Java8Tester.java

現在執行 Java8Tester,如下所示 − 

C:\JAVA>java Java8Tester

輸出

它應該產生以下輸出 − 

I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!


更新於: 17-Jun-2020

627 次瀏覽

開啟你的 職業生涯

完成本課程獲得認證

立即開始
廣告