本文共 1457 字,大约阅读时间需要 4 分钟。
默认接口主要解决接口升级问题。
public interface MyInterfaceDefault { // 抽象方法 public abstract void methodAbs();
public class MyInterfaceDefaultA implements MyInterfaceDefault{ @Override public void methodAbs() { // TODO Auto-generated method stub System.out.println("实现了抽象方法,AAA"); }
public class MyInterfaceDefaultB implements MyInterfaceDefault{ @Override public void methodAbs() { // TODO Auto-generated method stub System.out.println("实现了抽象方法,BBB"); }
public interface MyInterfaceDefault { // 抽象方法 public abstract void methodAbs(); //新添加了一个抽象方法 public abstract void methodAbs1();
程序报错,因为实现接口必须实现接口的所有方法
如果改MyInterfaceDefaultA和MyInterfaceDefaultB就很复杂了public interface MyInterfaceDefault { // 抽象方法 public abstract void methodAbs(); //新添加了一个抽象方法 //public abstract void methodAbs1(); //新添加的方法改为默认方法 public default void methodDefault() { System.out.println("这是新添加的默认方法"); }
public class Demo02shiyong { public static void main(String[] args) { // 创建了实现类对象 MyInterfaceDefaultA a = new MyInterfaceDefaultA(); a.methodAbs(); // 调用抽象方法,实际运行的是右侧实现类。 // 调用默认方法,如果实现类当中没有,会向上找接口 a.methodDefault(); // 这是新添加的默认方法 System.out.println("=========="); MyInterfaceDefaultB b = new MyInterfaceDefaultB(); b.methodAbs(); b.methodDefault(); // 实现类B覆盖重写了接口的默认方法 }
转载地址:http://mbezi.baihongyu.com/