【Java】【JDK8,9 接口新增方法 抽象方法 有方法体的方法 默认方法 静态方法 私有方法 接口的应用 接口多态 适配器设计模式 Adapter中间类】Notes and Insights 21

JDK8接口中新增的方法

  • JDK7以前接口中只能定义抽象方法
  • JDK8接口中可以定义有方法体的方法(默认、静态)

    JDK8以后接口中新增的方法

    • 允许在接口中定义默认方法,需要使用关键字 default 修饰 (作用:解决接口升级的问题
    • 接口中默认方法的定义格式
      • 格式:public default 返回值类型 方法名(参数列表){}
      • 范例:public default void show() {}
    • 允许在接口中定义静态方法,需要用static修饰
    • 接口中静态方法的定义格式
      • 格式:public static 返回值类型 方法名(参数列表) {}
      • 范例:public static void show(){}
        • 注意事项:静态方法只能通过接口名调用不能通过实现类名或者对象名调用
        • public可以省略,static不能省略

接口中默认方法的注意事项:

  • 默认方法不是抽象方法,所以不强制重写但是如果被重写,重写的时候去掉default关键字
  • public 可以省略 , default 不能省略
  • 如果实现了多个接口,多个接口中存在相同名字的默认方法子类就必须对该方法进行重写
public interface Inter{
    public abstract int method();
    // 小弟们,规则定义好了
    public abstract int method2();
    // 又加了一个规则
}

接口静态方法的注意事项

  • 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
  • public可以省略,static不能省略,否则也会被当成抽象方法,正如默认方法default不能省略

JDK9新增的私有方法

(其出现是为了解决JDK8中的默认方法和静态方法有重复的代码问题需要抽取出来)
此方法只为Inter接口提供服务,不需要外类访问,故私有化
普通私有方法(给默认方法服务)

  • private 返回值类型 方法名(参数列表){}
  • private void show() {} 不加default关键字 但是给默认方法服务的

静态的私有方法(给静态方法服务)

  • private static 返回值类型 方法名 (参数列表){} 为静态方法服务的

接口的应用

多个类可能会用到同样的的接口
对于实现类来说,想要让Javabean实现什么功能(拥有什么行为),就去实现什么接口
可以把接口当做各种各样行为的规则
接口类型 j = new 实现类对象();(运行时也会遵守 编译看左边运行看右边的 原则)

  • 接口代表规则,是行为的抽象,想要让那个类拥有一个行为,就让这个类实现对应的接口就可以了
  • 一个方法的参数是接口(规则,行为)时,我们可以传递接口所有实现类的对象,这种方式称之为接口多态

适配器设计模式

  • 设计模式(Design Pattern)是一套反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性,程序的重用性简单来说,设计模式就是各种套路
  • 适配器设计模式:解决接口与接口实现类的之间的矛盾问题
  1. 当一个接口中抽象方法过多,但是我们只要使用其中的一部分时候,就可以采用适配器设计模式
  2. 编写中间类XXX(接口名)Adapter实现对应接口,对接口中的抽象方法进行空实现
  3. 让真正的实现类继承中间类,并重写需要用的方法
  4. 为了避免其他类创建适配器类的对象中间的适配器类需要用 abstract 修饰
    原理:间接继承
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zanebla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值