Lambda表达式是Java 8中最重要的新增特性,为了在Java 8里既能增加这个新特性,又能保持向前兼容,很多随之而生的特性也端上了台面。缺省方法(Default Method)就是其中之一。随着这个新特性的出现,也就意味着接口可以定义方法实现了,该方法就是缺省方法。
例子如下:
interface HelloDefaultMethod {
void sayHello(String helloString);
default String helloString(String helloString) {
return "来自helloString缺省方法的问候语:" + helloString;
}
}
public class HelloDefault implements HelloDefaultMethod {
public static void main(String[] args) {
HelloDefault hello = new HelloDefault();
hello.sayHello("Java 8缺省方法");
system.out.println("\n");
system.out.println(hello.helloString("Java 8缺省方法"));
}
@Override
public void sayHello(String helloString) {
system.out.println("Override方法sayHello执行...");
system.out.println(helloString(helloString));
}
}
结果:
Override方法sayHello执行...
来自helloString缺省方法的问候语:Java 8缺省方法
来自helloString缺省方法的问候语:Java 8缺省方法