JAVA8之前,接口是不能有方法体的。在JAVA8,使用default关键字,可以实现在接口中编写方法体。
default关键字
default方法是在java8中引入的关键字,作用为Virtual extension methods(虚拟扩展方法)。是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。
①接口中声明静态方法体
public interface InterfaceExample{
public static void staticMethod() {
System.out.println("Static method!");
}
}
//调用代码
@Test
public void test() {
TestMethod.method();
}
②接口中声明非静态方法体
interface InterfaceExample{
String methodOne(String param);
default String methodTwo(){
return "Method body!";
}
}
public class Example implements InterfaceExample{
@Override
public String methodOne(String param){
return param;
}
}
//调用代码
//非静态方法需要先实现接口,再用实体类调用。
@Test
public void test() {
Example example = new Example();
example.methodTwo();
}