在JDK8之前, 接口中都只能有抽象方法, 而不能有实现方法, 但是在JDK8之后, 接口中也可以添加非抽象方法了, 在接口中添加非抽象方法, 使用特殊的关键字default进行修饰, 所以实现了该接口的类都可以调用接口的default的方法, 这样可以保证在不改变接口特性的情况下, 对接口增加一些行为, 有需要时可以使用接口的默认方法, 同时又不会影响现有已实现了该接口的方法, 代码示例如下:
interface MyInterface {
// 这个方法不重要
void print();
// 接口默认方法
default void defaultMethod(){
System.out.println("接口默认实现方法...");
}
}
/**
* 接口默认方法测试
*
* @author 七夜雪
* @date 2019-01-09 7:12
*/
public class InterfaceDefaultMethod {
public static void main(String[] args) {
// lambda表达式实现接口
MyInterface myInterface = () -> {};
myInterface.defaultMethod();
}
}
输出:
接口默认实现方法...