网上有很多的介绍,我就不详细的介绍了。
比如:
http://blog.youkuaiyun.com/wwwsssaaaddd/article/details/24213525
它的本意就是为了不破坏现在interface的结构,但是又能给interface中追加新的方法。
这里只说一下一个interface可以有多个default方法,default方法可以重载.
例如:
package defaults;
public interface A {
default void foo(){
System.out.println("Calling A.foo()");
}
default void foo(String a){
System.out.println("Calling A.foo(Strings)");
}
default void foo2(){
System.out.println("Calling A.foo2()");
}
}
如果default方法有冲突,可以使用A.super.foo();来解决,其实就是invokespecial