JDK8前接口中的方法真的不能有方法体,而JDK8后接口中的方法却是可以包含方法体了。
示例代码
public interface Person {
/**
* static方法
*/
static void getName() {
System.out.println("jiejie");
}
/**
* default方法
*/
default void getAge() {
System.out.println(66);
}
//Person接口实现类
class PersonImpl implements Person {
public static void main(String[] args) {
Person.getName();
PersonImpl person = new PersonImpl();
person.getAge();
}
}
}
运行结果:
总结
可以发现使用了static或者default关键字修饰的方法,即使它们有着方法体,也不会报编译错误,而且还能正常运行。所以JDK8后接口中使用了static或者default关键字修饰的方法是可以包含方法体的。