java8后接口的默认方法

这里我们先看一个案例

我们创建一个包

包下创建一个接口 testInterface
参考代码如下

public interface testInterface {
    void show();
}

然后 我们创建一个类型 realizationMethod 来实现这个接口 并重写这个show方法
realizationMethod 参考代码如下

public class realizationMethod implements testInterface {
    public void show(){
        System.out.println("测试数据");
    }
}

这是一个比较标准的 接口定义抽象方法 实现类 实现接口 重写实现类的方法

但这个 如果我们给接口加一个抽象方法

public interface testInterface {
    void show();
    void show2();
}

这样 我们 realizationMethod 类就开始报错了
在这里插入图片描述
因为 我们没有重写show2

但这样不方便啊 比如 我一个接口有很多方法 又有很多类要实现他 难道每一个都要重写这个接口的方法吗?

用以前的方法 我们可以再建一个接口subInterface
将 testInterface 接口的void show2();去掉 然后编写subInterface接口代码如下

public interface subInterface extends testInterface {
    void show2();
}

我们创建了一个接口 来继承testInterface 他就有了 testInterface的方法
将show2写给子接口 这样 想重写show2 继承他的子接口就好了

但这样写 其实也很不理想 你就想 我们每次升级一下 自己的接口 都要又写一个子接口 到时 项目越写越多 其实是很不友好的

这里 我们可以写java8后推出的 默认方法
我们更改testInterface接口代码如下

public interface testInterface {
    void show();
    default void show2(){

    }
}

这里 我们再看realizationMethod类
在这里插入图片描述
这里 他就不报错了 因为 show2现在是个默认方法 他是可以不被重写的 但他需要有方法体 当然 你可以在实现类中重写他的内容
在这里插入图片描述
这就是java8后的默认方法 他不是抽象方法 所以可以不重写 当然 也可以被重写

因为可以不重写 不会破坏原有的代码接口 所以更多适用于接口的更新

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值