Java 学习和实践笔记(37):接口中的默认方法-LMLPHP
Java8及以上新版本,允许给接口添加一个非抽象的方法实现,只需要使用default关键字即可,这个特征又叫做默认方法(也称为扩展方法)。

默认方法和抽象方法的区别是抽象方法必须要被实现,默认方法不是。作为替代方式,接口可以提供默认方法的实现,所有这个接口的实现类都可以自动得到这个接口默认方法。

示例代码:

package testInterface;

public interface testDefault {
    void printInfo();//接口中一般的抽象方法

    default void moren(){ //接中定义的默认方法
        System.out.println("测试默认方法");
    }
}

class TestDefaultImpl01 implements testDefault{

    @Override
    public void printInfo() {//只要求重写了接口中的抽象方法,默认方不需重写,当然一定要重写也是可以的
        System.out.println("TestDefaultImpl01.printInfo");

    }

}

上面的代码这样定义后,接口testDefault的实现类TestDefaultImpl01的对象td,就可以不仅使用重写的方法,也可以直接使用默认方法。虽然在实例类中,并没有写默认方法,如下:

testDefault td = new TestDefaultImpl01();
td.printInfo();
td.moren();


 

03-16 09:28