接口增强

jdk1.8接口新增功能

1.概述

  java诞生了20年,一直秉承着接口的组成是抽象方法加全局变量。但是到了jdk1.8,接口有了新的定义。在接口中可以新定义两种方法,分别是stati和default方法。也就是说接口中可以有方法体了。(以下纯属猜测)之所以有这样的改进应该也是在发展过程中遇到了一些问题。一种场景中是这样的:定义了一个接口A,他有1万个实现类,当完成了所有的实现类以后,发现少了一个方法,这个时候一定很崩溃,那么现在增强的接口有了可以定义方法体了,用default修饰,其所有实现类都可以继承这个方法,也可以复写之。下面用例子说明吧。

2.新增default方法

接口中定义default方法:

IFruit接口:
/**
 * 接口中定义default方法
 */
interface IFruit{       
    public void printFruitName();

    default void cleanFruit(){
        System.out.println("清洗水果");
    }
    default void eatFruit(){
        System.out.println("吃水果");
    }
}

  这个接口定义了一个抽象方法,两个default方法,其实现类可以做三件事:
1. 直接集成。
2. 复写
3. 引用父类的default方法

Apple实现类:
class Apple implements IFruit{
    @Override
    public void printFruitName() {
        System.out.println("苹果");
    }
    @Override
    public void eatFruit(){
        IFruit.super.eatFruit();
        System.out.println("吃苹果");
    }
} 

  Apple实现类对eatFruit()方法进行了复写,并且还调用了父类的此方法,注意这里调动父类的方法时,不能像普通子类那些super.方法名(),而需要在super前面加上接口名:InterfaceNmae.super.方法名()如程序代码所示。

3.新增static方法。

interface IFruit{
    public static void introduce(){
        System.out.println("this is a interfac example");
    }
}

  如代码所示,我们可以在接口中定义静态方法了!但是,别忘了,静态方法是不能被继承了哦!

4.总结

  1. jdk1.8接口增强就是增加default定义方法的可能,但是这种方法依靠实例化对象调用
  2. 接口中可以定义static方法,并且可以由接口直接调用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值