Default关键字介绍
Default方法是在java8中引入的关键字。也可称为Virtual extension methods——虚拟扩展方法。使得在接口中可以包含方法体,这打破了Java之前版本对接口的语法限制,从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。
Default好处
原先接口的缺陷是,修改接口后,则需要修改全部实现该接口的类,所以引进的默认方法。他们的目的是为了解决接口的修改与现有的实现不兼容的问题。
使用default关键字
- 接口中定义方法
public interface DefaultDemo01 {
/**
* 利用default在接口中添加方法体
*/
default void defaultHello(){
System.out.println("利用default关键字,可以在接口中定义方法体");
}
}
在实现类中调用default方法
public class DefaultDemoClass implements DefaultDemo01 {
public static void main(String[] args) {
DefaultDemoClass defaultDemoClass = new DefaultDemoClass();
defaultDemoClass.defaultHello();
}
}
实现结果;
如果这个时候 如果创建两个接口,并且都用default关键字创建了同名的方法,实现类不能同时实现这两个接口
2. 当实现类重写了该方法时,以实现类为准
public class DefaultDemoClass implements DefaultDemo01{
@Override
public void defaultHello(){
System.out.println("当实现类重写了该方法时,以实现类为准");
}
public static void main(String[] args) {
DefaultDemoClass defaultDemoClass = new DefaultDemoClass();
defaultDemoClass.defaultHello();
}
}