集合的增强
旧接口
interface interfaceName{
静态常量;
抽象方法;
}
新接口
interface interfaceName{
静态常量;
抽象方法;
静态方法;
默认方法;
}
原因:
不利于接口的拓展。新增接口需要全部的实现类进行重写
默认方法语法
interface interfaceName {
修饰符 default 返回值类型 方法名(){
方法体;
}
}
使用
- 实现类重写接口方法
- 实现类直接调用接口默认方法(实现后不重写就会调用默认方法)
静态方法语法
interface interfaceName {
修饰符 static 返回值类型 方法名(){
方法体;
}
}
调用
直接使用接口名调用 即interfaceName.method()进行调用,实现类不可以使用classObjectName.method调用
二者区别
- 默认方法可以通过实例调用,静态方法通过接口名调用
- 默认方法可以被继承,实现类可以直接使用接口默认方法或者重写默认方法
- 静态方法不可以被继承,实现类不可以重写静态方法,只能通过接口名调用