JDK8新特性,接口增强使用default,static关键字:
JDK8之前,接口中只能有公开的常量,和公开的抽象方法。
之后接口中还可以写有方法体的方法。
接口中可以写普通方法,有方法体的方法,但必须使用default关键字修饰。
接口中的default方法子类可以重写,也可以不重写。
接口中可以存在静态方法。通过“接口名.”的方式调用。
静态方法不能重写。
我们在使用接口中,也可以不用这些新特性,只要知道接口还存在这种语法就行。
测试代码:
public class Test04 {
public static void main(String[] args) {
MyInterface myInter = new MyClass();
MyInterface.doOther(); // 接口中的static方法执行!
myInter.m1(); // m1方法执行!
myInter.doSome(); // 接口中的default修饰的方法执行!
}
}
interface MyInterface {
// 抽象方法,没有方法体,修饰符可以省略不写
void m1();
// 普通方法,有方法体,使用default修饰
public default void doSome() {
System.out.println("接口中的default修饰的方法执行!");
}
// 静态方法
public static void doOther() {
System.out.println("接口中的static方法执行!");
}
}
class MyClass implements MyInterface {
@Override
public void m1() {
System.out.println("m1方法执行!");
}
}