Shuzheng
12/8/2019 - 1:08 PM

接口

public interface CompareA{
  
  //接口中的静态方法只能使用接口调用
  //CompareA.method1
  //经常在互相一起使用的类中使用,如Collection/Collections
  public static void method1(){
    System.out.println("method1")
  }
  
  //接口中的默认方法,可以通过对象在实现类中调用,
  //如果实现类重写了接口的默认方法,调用将调用重写了的方法
  //实现类 a =new 实现类()
  //a.method2
  public default void method2(){
    System.out.println("method2")
  }
}
//调用重名方法
method()//本身重写的方法
super.method()//父类中的方法
CompareA.super.method()//接口中的默认方法


//如果子类(实现类)的父类和接口有同名同参的方法
//在子类没有重写的情况下,默认执行父类(类优先原则)

//如果实现类实现了多个接口,有同名同参的默认方法
//实现类在没有重写的情况下会报错(接口冲突)
//若想调用,必须重写