为什么我们不能在Java接口中定义静态方法?

从Java 8开始,Java接口中允许使用静态方法。

从Java 8开始,接口也可以具有静态帮助器方法。 

public interface vehicle {
   default void print() {
      System.out.println("我是车!");
   }
   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("我是车!");
   }
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {
   default void print() {
      System.out.println("我是四轮车!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("我是车!");
   }
}

验证结果

使用javac编译器编译类,如下所示:

C:\JAVA>javac Java8Tester.java

现在运行Java8Tester,如下所示: 

C:\JAVA>java Java8Tester

输出结果

它应该产生以下输出- 

我是车!
我是四轮车!
Blowing horn!!!
我是车!