Skip to content

java8新特性

默认方法

  • 默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法
java
//默认方法
public interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

多个默认方法

  • 一个类实现了多个接口,且这些接口有相同的默认方法,以下实例说明了这种情况的解决方法:
java
public interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}
 
public interface FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}
  • 解决方案一:创建自己的默认方法,来覆盖重写接口的默认方法
java
public class Car implements Vehicle, FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮汽车!");
   }
}
  • 解决方案二:使用 super 来调用指定接口的默认方法
java
public class Car implements Vehicle, FourWheeler {
   public void print(){
      Vehicle.super.print();
   }
}

静态默认方法

  • 接口中可以声明(并且可以提供实现)静态方法。
java
public interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
    // 静态方法
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}