6-1接口

  • 允许接口中定义静态方法
  • 允许接口的方法定义默认实现,用default标记
    1. 解决接口扩展问题
    2. 定义接口方法时提供空实现,在实现多方法的接口时,只需实现自己关注的方法,可以不实现有默认实现的方法

为什么不将 Comparable 直接设计成抽象类

因java不支持多继承,而接口可以实现多个。

解决默认方法冲突

  • 超类优先
  • 接口冲突,指定实现
interface intf1{
    default String getName(){
        return "PersonName";
    }
}

interface intf2{
   default String getName(){
        return "Named";
    }
}

class c1 implements intf1,intf2{
    @Override
    public String getName() {
        return intf1.super.getName();//指定intf1的默认实现
    }
}```