java基础学习 day49(JDK8,JDK9的新特性,接口的多态(接口的应用场景),适配器设计模式)

1. JDK8以后,接口中新增的默认方法

  • 允许在接口中定义默认方法,需要使用关键字default修饰,作用为,解决接口升级时,需要强制修改所有实现类的问题
  • 接口中默认方法的定义格式:
    a. 格式:
    public default 返回值类型 方法名 (参数列表){ }
    b. 范例:
    public default void show ( ) { }
  • 接口中默认方法的注意事项:
    a. 默认方法不是抽象方法,所以不强制被重写(不重写,也能通过实现类的对象来使用这个默认方法),但是如果被重写,重写的时候需要去掉default关键字
    b. public可以省略(虚拟机会自动加上),default不能省略
    c. 如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写

2. JDK8以后,接口中新增的静态方法

  • 允许在接口中定义静态方法,需要使用static修饰
  • 接口中静态方法的定义格式:
    a. 格式:
    public static 返回值类型 方法名( 参数列表 ) { }
    b. 范例:
    public static void show () { }
  • 接口中静态方法的注意事项:
    a. 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
    b. public可以省略,static不能省略
    c. 静态方法不能被重写

3. JDK9以后,接口中新增的私有方法

  • 此方法只为接口提供服务,不需要外类访问,所以定义为私有
  • 接口中私有方法的定义格式:
    a. 给默认方法服务的:
    private 返回值类型 方法名 (参数列表) { }
    范例:private void show () { }
    b. 给static静态方法服务的:
    private static 返回值类型 方法名 (参数列表) { }
    范例:private static void method () { }

4. 接口的应用场景

  • 接口作为一种规则,是行为的抽象。想让哪个类拥有某个规则,或某个行为,就让这个类实现对应的接口就可以了
  • 当一个方法的参数是接口时,可以传递接口的所有实现类的对象,这种方法称之为接口多态,如图:
    在这里插入图片描述a. 遵守编译看左边,运行看右边的原则

5. 适配器设计模式

  • 设计模式就是解决各种问题的套路
  • 适配器设计模式:就是解决接口与接口实现类之间的矛盾问题
  • 当一个接口中抽象方法过多,但是我只要使用其中一部分的时候,就可以使用适配器设计模式
  • 书写步骤:
    a. 编写中间类XXXAdapter,实现对应的接口
    b. 对接口中的抽象方法进行空实现,即空着方法体不写
    c. 让真正的实现类继承中间类,并重写需要用的方法
    d. 为了避免其他类创建适配器类的对象,中间的适配器类用abstract进行修饰

猜你喜欢

转载自blog.csdn.net/u011453680/article/details/129368995
今日推荐