简单的测试
/**
* 测试默认方法
* @date 2018年3月18日
*/
public class TestJava8 {
public static void main(String[] args) {
Test1 test = () -> {};
test.point();
Test1.point2();
}
}
interface Test1 {
void execute();//默认方法和静态方法都不会影响函数式编程
default void point() {
System.out.println("接口默认方法调用!");
}
static void point2() {
System.out.println("接口静态方法调用!");
}
}
我们都知道如果在接口可以多实现,如果在实现的接口中存在同样的方法时编译期会报错。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BlajbOIL-1653903179185)(//img-blog.csdn.net/20180318010626129?watermark/2/text/Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDkzODg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)]
必须重写该默认方法
interface Test3 extends Test1,Test2{
@Override
default void point() {
Test1.super.point();
}
}