1.接口增强
在JDK8之前,JDK规定接口中只能定义 ①静态常量 ②抽象方法
修饰词 interface 接口名{
静态常量;
抽象方法;
}
在JDK8之后,对接口进行了增强。我们可以在接口中定义 ①静态常量 ②抽象方法 ③默认方法 ④静态方法
修饰词 interface 接口名{
静态常量;
抽象方法;
默认方法;
静态方法;
}
2.默认方法(default修饰)
public interface Map<K,V>{
...
default void forEach(BiConsumer<? super K, ? super V> action){
...
}
}特性:
1.新增的默认方法实现类不必重写,可以直接使用;
2.实现类也可以根据需要重写 ---->这样就方便了接口的扩展。
3.接口静态方法
为了方便接口的扩展,JDK8 同时为接口新增了静态方法
特性:
1.接口中的静态方法,实现类既不能调用,也不能重写;(只属于接口本身)
2.只能通过接口名. (接口名+ .)的方式调用
4.默认方法、静态方法的定义
//默认方法的定义(使用 default 定义)
修饰符 interface 接口名{
修饰符 default 返回值类型 方法名(){
代码部分;
}
}
//静态方法的定义(使用 static 修饰)
修饰符 interface 接口名{
修饰符 static 返回值类型 方法名(){
代码部分;
}
}
5.默认方法 和 静态方法 的区别
1.默认方法通过实例调用,静态方法通过接口名调用
2.默认方法可以被继承,实现类可以直接使用接口默认方法,也可以重写接口默认方法
3.静态方法不能被继承,实现类不能重写接口静态方法,只能使用接口名调用。