为什么我们在 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!


更新于:6 月 17 日,2020 年

628 次浏览

开启您的 职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.