接口的简单总结

接口 interface

接口不是类是一种引用数据类型,没有父子关系所以不可以使用protected权限修饰符

  • 可以存放的内容

    • 所有版本:抽象方法和静态常量

      // 都是抽象方法,可以省略
      public abstract void a1();
      abstract void a2();
      public void a3();
      // 推荐写法
      void a4();
      
      // 静态常量
      // public final static int A = 0;
      // 可以省略前面的修饰符
      // 推荐写法
      int A = 0;
      
    • 1.8:加入静态方法和默认方法

      // 静态方法
      // 实现类不可以实现
      static void a5() {
          System.out.println("这是InterfaceA的静态方法");
      }
      
      // 默认方法
      // default 不能省略
      // 实现类可以实现可以不实现
      // 作用:功能的扩展(如果需要加一个抽象方法那么所有实现类都要实现这个方法,但是默认方法则不用)
      public default void a6() {
          System.out.println("这是InterfaceA的默认方法");
      }
      default void a6() {
          System.out.println("这是InterfaceA的默认方法");
      }
      
    • 1.9:加入私有方法

      // 普通私有方法
      // 实现类不可以实现
      // 供默认方法调用(将默认方法中公有部分提取出来)
      private void a7() {
          System.out.println("这是InterfaceA的私有方法");
      }
      
      // 静态私有方法
      // 实现类不可以实现
      // 供静态方法调用(将静态方法中公有部分提取出来)
      private static void a8() {
          System.out.println("这是InterfaceA的静态私有方法");
      }
      

    接口中的内容

    • 接口实现类必须实现抽象方法
    • 接口实现类可以实现默认方法也可以不实现(接口中的default不算权限修饰符,所以前面会默认添加public),供实现类调用或重写,作用是为了功能的扩展(如果需要加一个抽象方法那么所有实现类都要实现这个方法,但是默认方法则不用)
    • 接口实现类可以直接访问接口中的静态常量(不用使用类名.静态常量)
    • 静态方法是供接口直接调用,使用接口名.静态方法名调用
    • 私有方法是为了提出默认方法中的重复代码,实现代码的复用
    • 静态私有方法是为了提出静态方法中的重复代码,实现代码的复用
    • 如果一个类实现了两个或多个接口时如果这些接口中有方法名相同的默认方法时必须重写这个默认方法

接口可以继承多个接口

如果继承的这些接口中有方法名相同的默认方法那么就必须先重写这些方法名相同的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值