jdk8出现的一个新特性–接口的增强。此次变化中,接口中某些方法也可以有方法体了。jdk8对于接口的设计,除了保留之前的版本记本特性外,还提供了两个新的功能。除了抽象方法外,还可以有默认方法(default方法)和静态方法(static方法),此两个方法都可以拥有方法体。
接口中允许有默认实现,使用 default 关键字声明,可以被覆写.必须创建实例调用
类优先规则:如果同时继承一个类 ,实现一个接口,接口中的默认方法和父类中的方法一样,则“接口中的默认方法会被忽略”
1 | public interface MyInterface { |
1 | public interface MyFun { |
1 | public class SubClass { |
1 | public class MyClass extends SubClass implements MyInterface { |
接口冲突。如果一个父接口提供一个默认方法,而另一个接口也是提供了一个具有相同名称和参数列表的方法(不管方法是否是默认方法),那么必须覆盖该方法来解决冲突
1 | public class MyClass /*extends SubClass*/ implements MyInterface, MyFun { |
- 接口中运行有静态方法,直接类名调用,不需要实例
1 | public interface MyInterface { |
1 | MyInterface.show(); //接口中的静态方法 |