default 在jdk8中引入的,可称为 virtual extension method—虚拟扩展方法。是指,在接口内部包含了一些默认的方法实现(就是接口中可用包含方法体,打破了java之前版本对接口的语法现在),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码.
下面展示一下具体用法:
定义接口:
/**
* @author:
* @description:
* @date: 2022/3/25
**/
public interface DefaultInterfaceTest {
default void hello() {
System.out.println("===hello");
}
void say();
}
定义处理方法:
/**
* @author:
* @description:
* @date: 2022/3/25
**/
public class DefaultClassTest implements DefaultInterfaceTest{
//接口实现类中,要重写接口中的虚拟方法
@Override
public void say() {
System.out.println("===say");
}
public static void main(String[] args) {
DefaultClassTest defaultClassTest = new DefaultClassTest();
defaultClassTest.say();
//接口实现类,可以直接调用接口中被 default 关键字修饰的方法
defaultClassTest.hello();
}
}
输出:
"C:\Program Files (x86)\Java\jdk1.8.0_31\bin\java.exe"
===say
===hello
Process finished with exit code 0