090.JAVA拓展_JAVA8的新特性_接口的默认方法


博主的 Github 地址


1. 接口中的默认方法

  • 在 JAVA8 中允许接口中存在定义默认的实现方法.
  • 用关键字 default 来定义接口的默认实现方法.
  • 方法可以是对象方法也可以是静态方法.

2. 接口可以定义默认实现方法后的用途

2.1. 实现多重继承

  • 可以通过接口在 JAVA 中来实现多重继承.
2.1.1. 多重继承中实现的多个接口中拥有同名默认方法的冲突
  • 一旦一个实体类继承了多个接口, 而这些接口中如果都有同名方法, 就会产生冲突.

  • 解决方法:

    • 在这个实体类中重新定义这个冲突方法, 对方法体直接进行重写.
    • 或者在实体类中重定义的方法体中, 指定使用目标接口中的同名方法,
      格式为:接口名.super.同名方法, 这样就可以使用指定父接口的同名方法.
2.1.2. 多继承中实现的接口和继承的实体父类拥有同名方法的冲突
  • 有时候多继承不仅需要实现多个接口, 还需要继承实体类作为父类,
    一旦实体父类中的方法和接口中的默认实现方法同名, 也会产生冲突.

  • 注意: 如果实体父类的方法和接口中的抽象方法同名, 是不会产生冲突的.

  • 解决方案:
    不需要处理, 因为运行时是直接使用实体父类的同名方法, 忽略接口的默认方法.


2.2. 接口中写静态方法用以实现工具类

  • 可以直接通过接口名来调用静态方法, 用以实现工具类.
  • 因为接口中不存在构造方法, 因此不需要再进行定义实体类来实现工具类.
2.2.1. 接口中定义静态方法后可淘汰的设计模式
  • 工具类的设计模式
  • 适配器的涉及模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值