接口的默认方法
Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。这种能力是向后兼容的,以便旧接口可以使用Java 8的lambda表达式功能。
例如,List和Collection没有foreach方法
public interface vehicle { default void print(){ System.out.println("I am a vehicle!"); } }
静态默认方法
public interface vehicle { default void print(){ System.out.println("I am a vehicle!"); } static void blowHorn(){ System.out.println("Blowing horn!!!"); } }
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!"); } }