java8后接口的默认方法

news2024/12/22 16:19:34

这里我们先看一个案例

我们创建一个包

包下创建一个接口 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后的默认方法 他不是抽象方法 所以可以不重写 当然 也可以被重写

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腊八节吃什么What to eat on the Laba Festival

农历十二月初八是中国的传统节日——腊八节,腊代表中国农历的十二月,而八是eight的发音,因此,这个节日被翻译成腊八。 The Laba Festival is a traditional Chinese holiday celebrated on the eighth day of the twelfth month …

Selenium switch_to 处理多Web页签窗口与封装

目录 前言 脚本案例 未做页签切换处理的 做了页签切换处理的脚本 面签切换封装 1、按面签位置切换封装 2、按页签标题切换封装 3、两个封装的调用 前言 在做自动化测试时,经常会遇到一个链接,它会重新打开一个Web签,如下图的样式 如…

Tif地形数据下载CTB切片nginx发布及cesium调用

访问这个网站:https://urs.earthdata.nasa.gov/ 需要注册 选择数据类型如下 点击Search,可以看到很多搜索结果 点击下载一项tif 下载成功后,需要切片的话,可以选择两种方式 1CesiumLab3,如下图 可以选择多个tif,输出类型选择散…

LeetCode118.杨辉三角 | LeetCode119.杨辉三角Ⅱ

LeetCode刷题记录 文章目录📜杨辉三角Ⅰ⌨C代码📜杨辉三角Ⅱ⌨C代码📜杨辉三角Ⅰ 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1 输入: n…

Linux进程间通信

1.进程间通信介绍 1.1进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某…

深度学习入门(六十六)循环神经网络——束搜索

深度学习入门(六十六)循环神经网络——束搜索)前言循环神经网络——束搜索课件贪心搜索穷举搜索束搜索总结教材1 贪心搜索2 穷举搜索3 束搜索4 小结前言 核心内容来自博客链接1博客连接2希望大家多多支持作者 本文记录用,防止遗忘…

MySQL批量导入数据时,为何表空间膨胀了N倍

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:叶金荣文章来源:GreatSQL社区原创 问题缘起 同事在客户现场利用DTS工具,从A实例将数据…

I2C(IIC)的仲裁、时钟同步和时钟扩展

I2C(IIC)的仲裁、时钟同步和时钟扩展 注意,CSDN以及博客园上有大量抄袭和以讹传讹的情况,注意鉴别。 本文参考了Philip的I2C specification以及wiki pedia,并且通过实践验证。 阅读本文要求你已经对i2c的协议有基本的…

调剂的事情该什么时间想?

小部分硕士考生已经开始关心调剂的事情了,其实这个事情还早,但对于考试成绩不是很理想又想要今年顺利读书的考生,调剂有可能会成为实现其目标的一条途径。针对这个问题小立老师针对MBA/MPA/MEM管理类硕士为大家做个前期的梳理,以平…

立足信创国产化运维,打造安全可控IT运维管理系统

随着国产化信创应用试点行业的不断扩大,应用信创产品的企事业单位逐渐增多。大多数企业均面临着陌生的国产化环境与产品,其使用习惯和解决问题的方式都面临改变。北京智和信通切实立足用户需求,提供信创运维服务。 通过“监、管、控、析、安…

监控 DolphinDB 进程对服务器资源的使用情况

本方案主要用于监控 DolphinDB 进程对服务器资源的使用情况及 DolphinDB 性能,如 DolphinDB 进程 CPU 占用情况、DolphinDB 进程内存占用情况、DolphinDB 进程磁盘资源使用情况等。DolphinDB 内置了相应的运维函数以获取当前节点的资源使用情况,Promethe…

OpenHarmony#深入浅出学习eTs#(五)eTs语言初识

本项目Gitee仓地址:深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、eTs介绍 概述 基于TS扩展的声明式开发范式的方舟开发框架是一套开发极简、高性能、跨设备应用的UI开发框架,支持开发者高效的构建跨设备应用UI界面。 基础能力 使用基于…

实战:一个脚本实现统计linux进程相关的信息

文章目录公司任务脚本思路脚本源码及写作过程执行测试又遇到问题问题解决总结公司任务 王同学刚刚入职,就被安排了一项任务,据说还比较紧急。 公司一共有200多台服务器,要求王同学统计一下每台服务器的IP,以及各个进程的数量。 …

Spring Boot[概述、功能、快速入门]

系列文章目录 从今天开始,将会发关于SpringBoot的内容,持续更新基础篇、高级篇(查看源码部分)。今天是第一天,我们来了解SpringBoot和快速创建SpringBoot项目。 该系列文章会持续更新~ 目录 系列文章目录 前言 一…

在国内用Windows给BT做种,真是一山绕过一山缠(附解决方案)

国内的网盘,动不动就乱删东西,实在是狗的不像样子,于是我有了玩一下BT(俗称 比特洪流,种子)的想法。 BT技术的玩法是,我有一份资源,制作一个种子,然后分享这个种子&#…

【1.2】认识微服务--微服务技术对比SpringCloud

认识微服务--微服务技术对比&SpringCloud微服务结构微服务技术对比DubboSpringCloudSpringCloudAlibaba企业需求SpringCloud知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。 微服务结构 微服务这种方案需要技术框架来落地…

如何用电脑录制视频?图文教学,快速学会

​与图片相比,视频可以更生动地表达信息。除了记录一些应用程序的内容外,有时我们还需要记录电脑桌面和录制视频。如何用电脑录制视频?本篇文章,将会以图文讲解的方式,教你如何用电脑录制视频。 电脑录制视频1&#xf…

第001课 - 项目介绍

文章目录 项目背景项目技术和特色项目前置要求分布式基础篇,就是快速开发一个电商的后台管理系统。 后端使用的技术栈,就是springboot+springcloud+mybatis+docker作为后端的基础环境。 结合前端的vue和elementui。 使用逆向工程的方式,快速帮助我们开发出来一个后台管理…

想入行软件测试不知道往哪个职业发展方向

现在关于软件测试领域的群体就有4种情况:‘低管理,低技术’ ‘低管理,高技术’ ‘高管理,低技术’ ‘高管理,高技术’ 好多人对自己测试的职业发展很迷茫,个人觉得这篇文章不错,转给大家分享下&…

数据可视化④:大学生就业可视化呈现

大学生就业是和我们息息相关的话题,每一位大学生都关注着,我们常常在网络上看到有关大学生就业的话题,比如毕业季的一些讨论。在大一的创新创业课中,我们也了解到自己所学的专业和以后如何就业,往哪方面就业。但我们了…