Lambda表达式是Java 8中最重要的新增特性,为了在Java 8里既能增加这个新特性,又能保持向前兼容,很多随之而生的特性也端上了台面。缺省方法(Default Method)就是其中之一。
随着这个新特性的出现,也就意味着接口可以定义方法实现了,该方法就是缺省方法。
例子如下:
/* * 接口缺省方法演示 * 作者:2gua * 2014/05/10 */
package hellorunner;
import static java.lang.System.out;
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缺省方法不错。");
out.println("\n");
out.println(hello.helloString("Java 8缺省方法不错。"));
}
@Override
public void sayHello(String helloString) {
out.println("Override方法sayHello执行...");
out.println(helloString(helloString));
}
}
运行结果:
Override方法sayHello执行...
来自helloString缺省方法的问候语:Java 8缺省方法不错。
来自helloString缺省方法的问候语:Java 8缺省方法不错。