Java 8的缺省方法

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缺省方法不错。
点赞