为什么我们不能在Java接口中定义静态方法?
从Java8开始,Java接口中允许使用静态方法。
从Java8开始,接口也可以具有静态帮助器方法。
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!!! 我是车!