jdk7以前:接口只能定义抽象方法
jdk8新特性: 接口中可以定义有方法体的接口.(默认是静态)
jdk9新特性: 接口中可以定义私有方法
作用:
主要是为了在接口中定义方法,实现接口不用重写该方法,不报错,等以后要用到再重写该方法
jdk8以后接口新增的方法:
允许在接口中定义默认方法,需要使用关键字default关键字修饰
作用:解决接口升级的问题
接口中默认方法的定义格式:
格式:public default 返回值类型 方法名(参数列表){ }
范例:public default void show(){ }
接口中默认方法的注意事项:
- 默认方法不是抽象方法,所以不用强制被重写,重写的时候去掉default关键字
- public可以省略,default不能省略
- 如果实现多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写
接口应用与适配模式:
例如:
接口A有十个方法
当impA实现接口A就要重写接口A中的所有方法,但我此时我只需要重写第5个方法,怎么办
问题解决:
此时我们需要创建一个一个impA的类重写接口A中的所有方法,然后在创建一个impA1去继承impA类重写第5个方法即可