当前位置: 首页 > news >正文

接口的扩展

1. 接口中新增的方法

JDK7之前接口中只能定义抽象方法。

JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态)

JDK9的新特性:接口中可以定义有私有方法体的方法。

有方法体的方法:接口升级时,为了兼容性而设置的。

JDK8以后:

允许在接口中定义默认方法,需要用关键字default修饰。

作用:解决接口升级的问题

接口中默认方法的定义格式:

         格式:public default 返回值类型 方法名(参数列表){}

        范例:public default void show(){}

接口中默认方法的注意事项:

        默认方法不是抽象方法,所以不强制被重写。但是如果被重写,重写的时候去掉default关键字。

        public可以省略,default不能省略。

        如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法重写。

1.1 JDK8以后接口中新增的方法

允许在接口中定义静态方法,需要用static修饰

接口中静态方法的定义格式:

        格式 :public static 返回值类型 方法名(参数列表){}

        范例:public static void show(){}

接口中静态方法的注意事项:

        静态方法只能通过接口名调用,不能通过类名或者对象名调用。(因为static方法,不在虚方法表中),所以不需要重写。

        public可以省略,static不能省略。

1.2 JDK9以后接口中新增的方法

此方法只为Inter接口提供服务,不需要外类访问。

接口中私有方法的定义格式:

普通的私有方法,给默认方法服务的。

        格式:private 返回值类型 方法名(参数列表){}

        范例:private void method(){}

静态的私有方法,给静态方法服务。

        格式2: private static 返回值类型 方法名(参数列表){}

        范例2: private static void method(){}

2. 接口的应用

接口理解成行为的规则,需要哪个规则,就实现对应的接口。

        1.接口代表规则,是行为的抽象。想要让哪个类拥有一个行为,就让这个类实现对应的接口就可以了。

        2.当一个方法的接口是参数时,可以传递接口所有实现类的对象,这种方式称之为接口多态。

3. 适配器设计模式

设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性、程序的重用性。

简单理解:实际模式就是解决各种问题的套路。

适配器设计模式:解决接口与接口实现类之间的矛盾问题。

当一个接口中抽象方法过多,但是我只要使用其中一部分的时候,就可以适配器设计模式。

书写步骤:

         编写中间类XXXAdapter,实现对应的接口。

        对接口中的抽象方法进行空实现。

        让真正的实现类继承中间类,并重写需要写的方法。

        为了避免其他类创建适配器类的对象,中间的适配器类用abstract进行修饰。

相关文章:

接口的扩展

1. 接口中新增的方法 JDK7之前接口中只能定义抽象方法。 JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态) JDK9的新特性:接口中可以定义有私有方法体的方法。 有方法体的方法:接口升级时,为了兼容…...

新能源电机轴承电腐蚀,如何破?

近年来,随着全球范围内对可再生能源的重视与推动,新能源电机作为新能源汽车、风力发电和太阳能发电等系统的重要组成部分,得到了迅猛的发展。然而,在实际应用中,新能源电机的维护与管理越来越受到关注,其中…...

Java中的File和IO流

File对象 File对象本质是一个文件或文件夹,用于写入和读取文件内容 注意:对于相对路径而言,在单元测试方法中的File是相对于Module,在main中的File是相对于Project 构造器 File(String pathname)File file1 new File("D:…...

ls命令实操笔记

ls命令:全称list,显示文件的文件名与相关属性。(目前工作目录所含之文件及子目录) 4567 45678 7891 a1b2 a2b3c abcd Abcd acde aD7E bcde 通过ls浏览上述文件所在的目录,实现以下需求: 浏览含…...

线段数--算法

线段树是常用来维护 区间信息 的数据结构 线段树可以在 O(logN) 的时间复杂度内实现 单点修改区间修改区间查询 区间求和求区间最大值求区间最小值 简单介绍一下线段树 线段树是一个将区间内的数不断细分的一种数据结构,也就是一个完全二叉树,用每一…...

JS的DOM操作和事件监听综合练习 (具备三种功能的轮播图案例)

下面是是对dom操作的一个综合练习 下面代码是html的基本骨架&#xff08;没有任何的功能&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" c…...

低温存储开关机问题

问题&#xff1a; 某消费电子产品在进行可靠性实验室&#xff0c;在低温-30C存储两个小时后&#xff0c;上电不开机。在常温25C时&#xff0c;开关机正常。 分析&#xff1a; 1、接串口抓log信息&#xff0c;从打印信息可以看出uboot可以起来&#xff0c;在跑kernel时&#x…...

mysql系列1—mysql架构和协议介绍

背景&#xff1a; 本文开始整理mysql相关的文章&#xff0c;用于收集数据库相关内容&#xff1b;包括mysql架构和存储方式、索引结构和查询优化、数据库锁等内容。思考如何根据具体的业务给出最优的分表规划和表设计、字段选择和索引设计、优化的SQL语句&#xff0c;以及数据库…...

设计模式——模板模式

定义与基本概念 模板模式&#xff08;Template Pattern&#xff09;是一种行为设计模式。它在一个抽象类中定义了一个操作的算法骨架&#xff0c;将一些步骤的实现延迟到具体子类中。这个抽象类就像是一个模板&#xff0c;定义了执行某个流程的基本框架&#xff0c;而具体的细…...

CV22_语义分割基础

1. 常见的分割类型 在计算机视觉领域&#xff0c;根据不同的应用场景和需求&#xff0c;分割任务可以分为几种主要类型。以下是几种常见的分割类型&#xff1a; 语义分割&#xff08;Semantic Segmentation&#xff09;&#xff1a; 语义分割的目标是将图像中的每个像素分配到…...

Dubbo源码解析-Dubbo的线程模型(九)

一、Dubbo线程模型 首先明确一个基本概念&#xff1a;IO 线程和业务线程的区别 IO 线程&#xff1a;配置在netty 连接点的用于处理网络数据的线程&#xff0c;主要处理编解码等直接与网络数据 打交道的事件。 业务线程&#xff1a;用于处理具体业务逻辑的线程&#xff0c;可以…...

【Canvas与标志】圆角三角形生化危险警示标志

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>圆角三角形生化危险警示标志 Draft1</title><style type&qu…...

解决Dcat Admin laravel框架登录报错问题,(blocked:mixed-content)

前言 在使用 Dcat Admin 后台登录时&#xff0c;发生 error 报错&#xff1a;(blocked:mixed-content) xhr VM484:1&#xff0c;浏览器拦截 其实这是浏览器在 HTTPS 页面中尝试加载 HTTP 资源&#xff0c;导致浏览器阻止了这些不安全的请求。 解决 在 .env 文件中添加或修改 AD…...

(三)Sping Boot学习——升级jdk1.8-jdk18

1.修改系统环境变量。 2.idea中修改配置。 3.项目setting中设置修改 4.更新后还要重新下载依赖mvn clean install &#xff0c;并且记住reload 项目。同时查看java -version查看一下jdk版本。...

语言模型中的多模态链式推理

神经网络的公式推导 简介摘要引言多模态思维链推理的挑战多模态CoT框架多模态CoT模型架构细节编码模块融合模块解码模块 实验结果运行代码补充细节安装包下载Flan-T5数据集准备rougenltkall-MiniLM-L6-v2运行 简介 本文主要对2023一篇论文《Multimodal Chain-of-Thought Reason…...

SCons:下一代构建工具,如何用 Python 驱动高效构建?

在现代软件开发中&#xff0c;构建工具是开发流程中不可或缺的一环。无论是小型项目还是跨平台的复杂工程&#xff0c;选择一个高效、灵活的工具都能显著提高开发效率和代码质量。SCons&#xff0c;一个以 Python 为基础的构建工具&#xff0c;通过自动化依赖管理、灵活的扩展性…...

springboot 整合 rabbitMQ (延迟队列)

前言&#xff1a; 延迟队列是一个内部有序的数据结构&#xff0c;其主要功能体现在其延时特性上。这种队列存储的元素都设定了特定的处理时间&#xff0c;意味着它们需要在规定的时间点或者延迟之后才能被取出并进行相应的处理。简而言之&#xff0c;延时队列被设计用于存放那…...

ES 基本使用与二次封装

概述 基本了解 Elasticsearch 是一个开源的分布式搜索和分析引擎&#xff0c;基于 Apache Lucene 构建。它提供了对海量数据的快速全文搜索、结构化搜索和分析功能&#xff0c;是目前流行的大数据处理工具之一。主要特点即高效搜索、分布式存储、拓展性强 核心功能 全文搜索:…...

分割一切2.0,SAM2详解

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月24日20点03分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…...

Spring AI Fluent API:与AI模型通信的流畅体验

引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;越来越多的应用场景开始融入AI技术以提升用户体验和系统效率。在Java开发中&#xff0c;与AI模型通信成为了一个重要而常见的需求。为了满足这一需求&#xff0c;Spring AI引入了ChatClient&#xff0c…...

Reloaded-II 模组加载器:深入解析依赖管理机制与循环依赖解决方案

Reloaded-II 模组加载器&#xff1a;深入解析依赖管理机制与循环依赖解决方案 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Reloaded-II 作为…...

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署保姆级

2026年腾讯云OpenClaw/Hermes Agent配置Token Plan部署保姆级。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&am…...

HAR模型调优实战:为何精心调优的线性模型能击败复杂机器学习?

1. 项目概述&#xff1a;当HAR模型遇上机器学习&#xff0c;一场关于“调优”的较量在金融计量和量化交易领域&#xff0c;预测明天的市场波动率&#xff0c;就像试图预测一场风暴的强度&#xff0c;充满了挑战但也至关重要。无论是为了给衍生品定价、管理投资组合风险&#xf…...

BabelDOC:3步搞定学术论文PDF翻译,公式表格完美保留!

BabelDOC&#xff1a;3步搞定学术论文PDF翻译&#xff0c;公式表格完美保留&#xff01; 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 你是否正在为英文学术论文的阅读而烦恼&#xff1f;复杂…...

机器学习揭示h-BN莫尔超晶格中滑动铁电的拓扑极化图案与调控

1. 项目概述&#xff1a;当机器学习遇见莫尔物理最近几年&#xff0c;但凡关注凝聚态物理前沿的人&#xff0c;都绕不开“莫尔超晶格”这个词。简单来说&#xff0c;就是把两层原子晶体&#xff08;比如石墨烯、过渡金属硫化物&#xff09;稍微扭一个角度&#xff0c;或者让它们…...

保姆级教程:手把手复现4D-CRNN脑电情绪识别模型(基于DEAP/SEED数据集)

4D-CRNN脑电情绪识别模型实战指南&#xff1a;从数据预处理到模型训练在脑机接口与情感计算领域&#xff0c;4D-CRNN模型因其出色的多维度特征提取能力而备受关注。本文将带您从零开始&#xff0c;完整复现这一前沿模型在DEAP和SEED数据集上的实现过程。不同于理论讲解&#xf…...

量子计算中的李群与李代数:从数学基石到时间最优控制实践

1. 从对称性到量子操控&#xff1a;李群与李代数的核心角色 在量子信息处理的世界里&#xff0c;我们每天都在与“对称性”打交道。一个量子比特的旋转&#xff0c;一个多体纠缠态的演化&#xff0c;甚至一个量子算法的设计&#xff0c;其背后都隐藏着一种优美的数学结构——连…...

去偏机器学习在交通行为因果推断中的应用:从关联分析到因果效应评估

1. 项目概述&#xff1a;当交通研究遇上因果推断在交通工程与城市规划领域&#xff0c;我们常常面临一个核心挑战&#xff1a;如何从海量的观测数据中&#xff0c;剥离出某个特定因素&#xff08;比如一项新政策、一种交通管控措施&#xff09;对人们行为的“真实”影响&#x…...

【Midjourney饱和度调控黄金法则】:20年AI视觉调校专家亲授3类典型过曝/灰暗场景的7步精准校正流程

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Midjourney饱和度调控的核心原理与认知重构 Midjourney 的饱和度&#xff08;Saturation&#xff09;并非独立控制的图像参数&#xff0c;而是嵌套于其隐式色彩空间映射与扩散过程中的动态响应变量。它由模型…...

企业部署 AI Agent Harness Engineering 的第一道坎不是技术,是信任

企业部署 AI Agent Harness Engineering 的第一道坎不是技术,是信任 引言 各位正在关注 AI Agent 落地企业生产环境的技术负责人、CTO、架构师、开发者们: 去年我在国内某头部 SaaS 公司做内部 Hackathon 的评委时,看到了一支由 3 个应届毕业的计算机科学博士和 2 个资深后…...