接口的扩展(2.15)

本文介绍了JDK8开始接口新增的默认方法和静态方法,以及JDK9引入的私有方法。重点讨论了接口在编程中的应用,如作为规则的抽象和多态,并讲解了适配器设计模式如何解决接口与实现类的兼容问题。
摘要由CSDN通过智能技术生成

一、JDK8开始接口中新增的方法

  1. 接口中的默认方法
    • 默认方法定义

      使用default关键字定义

      格式:

      public default 返回值 方法名(参数列表){}
      范例:
      public default void show(){}
    • 注意事项

      (1)定义默认方法,public可以省略,default不可以省略

      (2)默认方法不是抽象方法,可以不用重写;要重写的话,重写时要去掉default关键字

      (3)一个类实现多个接口,如果接口中有重复的默认方法,必需要重写;且以重写过后的方法为基准

    • 默认方法作用

      用于解决接口升级的问题

  2. 接口中的静态方法
    • 静态方法定义

      使用static关键字定义

      定义格式:

      public static 返回值 方法名(参数列表){}
      范例:
      public static void show(){}
    • 注意事项

      (1)静态方法只能通过接口名调用,不能通过实现类名或对象名调用;同样也无需重写

      (2)public 可以省略,static不可以省略

二、JDK9接口新增的方法(私有)

目的是:私有方法只为inter接口提供服务,不需要外类访问

  1. 私有方法
    1.定义格式
    private 返回值 方法名(参数列表){}
    范例:
    private void show(){}
    2.作用:普通私有方法,为默认方法服务
  2. 静态私有方法
    1.定义格式
    private static 返回值 方法名(参数列表){}
    范例:
    private static void show(){}
    2.作用:静态私有方法,为静态方法服务

三、接口的应用

  1. 应用1

    接口代表规则,是行为的抽象。想要让子类拥有一定的行为,只需要实现对应的接口

  2. 应用2:接口的多态

    当一个方法的参数是接口时,他会传递接口所有实现类的对象,这种方式成为接口多态

    ps:在一个方法中如果参数写成了接口,那么调用这个方法的时候,就可以传递这个接口所有实现类对象,只要左边的搬家公司类和搬运车类,去实现右边的运输接口,那么在调用搬家方法的时候,车的对象,搬家公司的对象都会传递过来

四、适配器设计模式

设计模式:

一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结;实用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性

简单来说:设计模式就是各种套路

适配器设计模式:解决接口与接口实现类之间的矛盾问题
使用场景:当一个接口中抽象方法太多,但只需使用其中一部分的时候,可以使用适配器设计模式
使用步骤:
  1. 编写中间类,类名为×××Adapt,实现对应接口;在×××Adapt类中对接口的抽象方法进行空实现

  2. 让真正的实现类继承×××Adapt,并重写需要用到的方法;为了避免其他类创建适配器对象,需要在适配器类上加abstract

    注意:如果实现类需要继承某一个父类,那么要在适配器类上继承父类,做到间接继承

作者的话

给大家拜个晚年呀,过年前后真的是好忙啊。各路“牛鬼蛇神”都来了,从今天恢复更新,望大家监督!!!

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值