1 package Port; 2 /* 3 从java 8开始,接口里允许定义默认方法 4 格式: 5 public default 返回值类型 方法名称(参数列表){ 6 方法体 7 } 8 备注:接口当中默认方法,可以解决接口升级问题。 9 */ 10 public interface InterfaceDefault { 11 //抽象方法 12 public abstract void Method(); 13 //新添加一个默认方法 14 public default void Method1(){ 15 System.out.println("这是新添加的默认方法"); 16 } 17 }
package Port; public class Demo { public static void main(String[] args) { //创建了实现类对象 Come A = new Come(); A.Method();//调用抽象方法,实际运行的是右侧实现类 //调用默认方法,如果实现类当中没有,会向上找接口 A.Method1(); System.out.println("=========================="); Conme1 B = new Conme1(); B.Method(); B.Method1();//实现类B覆盖重写了接口的默认方法 } }
1 package Port; 2 /* 3 1.接口的默认方法,可以通过接口实现类对象,可以直接调用。 4 2.接口的默认方法,也可以被接口实现类进行覆盖重写。 5 */ 6 public class Conme1 implements InterfaceDefault { 7 @Override 8 public void Method(){ 9 System.out.println("实现了抽象方法1"); 10 } 11 @Override 12 public void Method1(){ 13 System.out.println("实现类B 覆盖重写完成!"); 14 } 15 }