1.JDK7及其之前,接口中都是抽象方法,且不能出现static方法
2.接口的变量都是public final static 全局静态常量,无变化
3.接口中可以添加非抽象方法(static),通过接口名调用,不能使用实现类的对象名调用
4.接口中可以添加非抽象方法(非static),需使用default定义。实现类 可以直接使用default方法,可以重写default方法,但是必须去掉default(default只能接口中使用)
5.上级接口中default方法的调用:MyInterface.super.method2()
6.目的是为了既有的成千上万的Java类库的类增加新的功能,且不必对这些类重新进行设计。
比如:只需在Collection接口中增加default Stream stream,相应的Set和List接口以及它们的子类都包含此方法,不必为每个子类都重新copy这个方法。
但是如果父类,多个接口都同名default,static方法可怎么办呢?有优先顺序和解决之道,或者是为了解决实现该接口的子类代码重复问题