接口增强
1.介绍
在JDK8中,对于接口增强了,接口除了有抽象方法以外,还可以定义默认方法和静态方法
2.JDK8前后接口对比
8以前的接口
public interface 接口名 {
静态常量;
抽象方法:
}
8之后的接口
public interface 接口名 {
静态常量;
抽象方法:
默认方法;
静态方法;
}
3.默认方法
没有默认方法的问题
- 如果给接口新增抽象方法,所有实现类都必须重写这个抽象方法。不利于接口的扩展
- 接口中的默认方法实现类不必重写,可以直接使用,实现类也可以根据需要重写。这样就方便接口的扩展
默认方法的定义格式
interface 接口名 {
修饰符 default 返回值类型 方法名() {
代码;
}
}
接口默认方法的使用
- 实现类直接调用接口默认方法
- 实现类重写接口默认方法
4.静态方法
介绍
为了方便接口扩展,JDK 8为接口新增了静态方法
静态方法的定义格式
interface 接口名 {
修饰符 static 返回值类型 方法名() {
代码;
}
}
静态方法的使用
直接使用接口名调用即可:接口名.静态方法名();
5.默认方法和静态方法的区别
- 默认方法通过实例调用,静态方法通过接口名调用
- 默认方法可以被继承,实现类可以直接使用接口默认方法,也可以重写接口默认方法
- 静态方法不能被继承,实现类不能重写接口静态方法,只能使用接口名调用