Default方法是在java8中引入的关键字。也可称为Virtual extension methods——虚拟扩展方法。使得在接口中可以包含方法体,这打破了Java之前版本对接口的语法限制,从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。
原先接口的缺陷是,修改接口后,则需要修改全部实现该接口的类,所以引进的默认方法。他们的目的是为了解决接口的修改与现有的实现不兼容的问题。
在实现类中调用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(); } }