JavaSE16-面向对象-接口
文章目录
- 一、概念
- 二、格式
- 1.使用interface来定义接口
- 2.implements实现接口
- 三、接口中的成员
- 1.常用成员
- 2.新增成员(不重要)
- 2.1 默认方法
- 2.2 静态方法
- 2.3 私有方法
- 四、继承关系 & 实现关系
- 五、抽象类和接口的使用区别
一、概念
接口就是规范\规则,我们可以使用接口来定义一些规则
(比如要求某个方法的方法名必须叫什么,方法的参数列表必须是什么,方法的返回值类型必须是什么)
二、格式
1.使用interface来定义接口
public interface 接口名{//定义抽象方法。public abstract被省略了void method();
}
2.implements实现接口
果要实现多个接口,多个接口名用逗号分开。我们在理解的时候可以把接口理解成是一个特殊的父类。
public class 类名 implements 接口名{}
三、接口中的成员
1.常用成员
在jdk7版本中接口中只能有常量和抽象方法。
- 接口中定义不了成员变量,定义的成员变量默认都会修饰为:public static final
- 定义的方法默认修饰符为public abstract**
public interface InterfaceA {//常量int NUM =10;//等价于public static final int NUM =10;//抽象方法void method();//等价于 public abstract void method();
}
2.新增成员(不重要)
默认方法、静态方法、私有方法
2.1 默认方法
- 在jdk8中允许我们在接口中定义默认方法。默认方法允许有方法体。
- 默认方法可以选择不进行重写。也可以重写,看需要。
- 注意事项:如果两个接口中有相同的默认方法。一个类同时实现了这两个接口,必须要重写该方法。
- 应用场景:如果在接口升级的时候某些方法并不想让所有的实现类进行重写,可以使用默认方法来定义。
public interface InterfaceA {//默认方法:使用defaut关键字进行修饰。default void method(){}
}
2.2 静态方法
- 在jdk8中允许我们在接口中定义静态方法。静态方法允许有方法体。
- 静态方法不能被重写。
- 应用场景:如果在接口升级的时候需要给接口增加一些工具方法。不想让实现类去重写该方法,可以使用静态方法来定义。
public interface InterfaceA {//静态方法:使用static关键字进行修饰。static void staticMethod(){}
}public class Demo {public static void main(String[] args) {//使用接口名.方法名(参数) 来调用InterfaceA.staticMethod();}
}
2.3 私有方法
- 在jdk9中允许我们在接口中定义私有方法。私有方法允许有方法体。
- 私有方法不可以被重写。
- 应用场景:对默认方法或者是静态方法中重复的代码进行抽取,提高代码复用度。
public interface InterfaceA {
// 使用private修饰
//加上static的原因:静态方法只能调用静态方法,如果是静态方法调用就要在此方法中加上staticprivate static void privateStaticMethod(){}private void privateMethod(){}
}
四、继承关系 & 实现关系
- 在java中一个类可以实现多个接口
public class Person implements InterfaceA,InterfaceB{}
- 在java中接口和接口之间可以有继承关系。继承之后实现类会把父接口的成员继承下来。
public interface InterfaceC extends InterfaceA{}
五、抽象类和接口的使用区别
- 接口中的基本都是抽象的,而在抽象类中可以有一部分是非抽象方法。而非抽象类中是不可以有抽象方法的。
- 接口是最抽象的,其次是抽象类,最后是非抽象类。
- 所以我们最顶层设计成接口,然后实现类设计成抽象类(实现部分抽象方法),抽象类的子类可以设计成非抽象类(对剩下的所有抽象方法进行实现)。
相关文章:
JavaSE16-面向对象-接口
文章目录一、概念二、格式1.使用interface来定义接口2.implements实现接口三、接口中的成员1.常用成员2.新增成员(不重要)2.1 默认方法2.2 静态方法2.3 私有方法四、继承关系 & 实现关系五、抽象类和接口的使用区别一、概念 接口就是规范\规则&…...
安卓设备蓝牙键盘快捷键
安卓设备蓝牙键盘快捷键前言注意鼠标按键系统快捷键桌面快捷键输入法快捷键其它快捷键旧快捷键(已失效)前言 安卓设备可以通过蓝牙或有线外接键盘,值得一提的是,安卓平板连接蓝牙键盘和蓝牙鼠标是一个不错的组合。本文以鸿蒙3.0平…...
Puppeteer项目结构梳理
最近接触了一个个人感觉很奈斯的项目,故记录思路如下: puppeteer项目梳理: 入口文件 run.js 入口命令 node run.js YourConfig.json 1、我们可以在自己的config.json里面设置好 ①、登录的用户名密码;aws或其它服务器的access等id,accessKey…...
(02)Unity HDRP Volume 详解
1.概述这篇文章主要针对HDRP中的Volume和Volume Post-processing进行解释,针对于各个组件只能进行部分参数的解释,具体的信息可参考官方资料,这里只是对官方文档的图片效果补充以及笔者自己的理解。看到这里进入正文,请确保你的Un…...
拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴
有时候,大佬们总是会特立独行。因为像我这样的常人总是想不通,究竟是怎样的情境,连B站这样的大厂面试都可以推掉? 缘起一通电话,踏出了改变人生轨迹的第一步 我是小瑾,今年28岁,2016年毕业于陕…...
分享一种实用redis原子锁的方式
1. setnx(lockkey, 当前时间过期超时时间) ,如果返回1,则获取锁成功;如果返回0则没有获取到锁,转向2。2. get(lockkey)获取值oldExpireTime ,并将这个value值与当前的系统时间进行比较,如果小于当前系统时间…...
【华为OD机试】 字符串解密(C++ Java JavaScript Python)
题目描述 给定两个字符串string1和string2。 string1是一个被加扰的字符串。 string1由小写英文字母(’a’’z’)和数字字符(’0’’9’)组成,而加扰字符串由’0’’9’、’a’’f’组成。 string1里面可能包含0个或多个加扰子串,剩下可能有0个或多个有效子串,这些有…...
金三银四,助力你的大厂梦,2023年软件测试经典面试真题(1)(共3篇)
前言 金三银四即将到来,相信很多小伙伴要面临面试,一直想着说分享一些软件测试的面试题,这段时间做了一些收集和整理,下面共有三篇经典面试题,大家可以试着做一下,答案附在后面,希望能帮助到大…...
假如面试官要你手写一个promise
promise 在开发中,经常需要用到promise,promise具有很多特性,这一次将对promise特性进行总结,并从零写一个promise。 步骤一 Promise特点 1,创建时需要传递一个函数,否则会报错2,会给传入的函…...
【leetcode】寻找重复数
题目链接:寻找重复数https://leetcode.cn/problems/find-the-duplicate-number/ 方法一:快慢指针 因为只有一个数字是重复的,且一个数字正好对应一个唯一的下标,所以可以将数组抽象为一个链表,假定数组为{1,2,3,4,5,…...
LeetCode 1247. Minimum Swaps to Make Strings Equal【数学,贪心,字符串】
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
pid控制加热算法,附代码仓库
1、该项目层次化结构清晰,代码框架耦合度低,可复用性、可移植性强。 2、功能代码与底层硬件无直接关联,无需更改上层应用逻辑,只需更改接口文件,即可移植到不同的硬件平台; 3、使用lwrb开源组件、pid开源算…...
一文看懂预训练和自训练模型
说到预训练模型,不得不提迁移学习了,由于很多数据不是标签数据,人工标注非常耗时,神经网络在很多场景下受到了限制。但是迁移学习和自学习的出现,在一定程度上缓解甚至解决了这个问题。我们可以在标签丰富的场景下进行…...
(五十四)大白话索引的页存储物理结构,是如何用B+树来实现的?.md
上一次我们给大家说了主键索引的目录结构,只要在一个主键索引里包含每个数据页跟他最小主键值,就可以组成一个索引目录,然后后续你查询主键值,就可以在目录里二分查找直接定位到那条数据所属的数据页,接着到数据页里二…...
前端Vue代码风格指南
一、命名规范 市面上常用的命名规范: camelCase(小驼峰式命名法 —— 首字母小写) PascalCase(大驼峰式命名法 —— 首字母大写) kebab-case(短横线连接式) Snake(下划线连接式&…...
「TCG 规范解读」基础设施架构和协议 (2)
可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…...
NodeJs 中的 HTML 模板
💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 HTML 模板是一种允许我…...
3.ffmpeg命令行环境搭建、ffmpeg命令行初步了解
在上章,我们讲过: ffmpeg.exe: 主要用于转码或者剪切的应用程序, 也可以从url/现场音频/视频源抓取输入源ffplay.exe: 主要用于播放视频的应用程序,该应用程序源码是开源的,我们后面章节会去源码分析ffprobe.exe: 主要用于分析视频码流的应用程序, 可以获取媒体文件的详细信息,…...
Kubernetes初始化容器
初始化容器 之前了解了容器的健康检查的两个探针:liveness probe(存活探针)和readiness probe(可读性探针)的使用方法,我们说在这两个探针是可以影响容器的生命周期的,包括我们之前提到的容器的…...
leetcode: Swapping Nodes in a Linked List
leetcode: Swapping Nodes in a Linked List1. 题目描述2. 题目解答3. 总结1. 题目描述 You are given the head of a linked list, and an integer k.Return the head of the linked list after swapping the values of the kth node from the beginning and the kth node f…...
利用快马AI三分钟生成Python哈希表原型,快速验证数据存储方案
今天在做一个数据处理的小项目时,突然需要快速验证一个数据存储方案。想到哈希表这种高效的数据结构正好适合,但自己从头实现又太费时间。正好最近在用InsCode(快马)平台,发现它的AI辅助功能可以快速生成可运行的原型代码,于是尝试…...
无限级数求和的Java实现与数学分析
本文旨在详细说明如何使用Java精确计算特定形式的无限级数 S -(2x)^2/2! (2x)^4/4! - (2x)^6/6! ... 在指定区间 [0.1, 1.5] 内部和。我们将深入分析等级数的数学性质,推导其闭合形式,并在此基础上纠正原始Java代码…...
HunyuanVideo-Foley企业应用:汽车HMI人机交互音效AI生成平台
HunyuanVideo-Foley企业应用:汽车HMI人机交互音效AI生成平台 1. 产品概述 HunyuanVideo-Foley是一款专为企业级音视频生成需求设计的AI平台,特别针对汽车HMI(人机交互界面)音效场景进行了深度优化。该平台基于RTX 4090D 24GB显存…...
如何用OpenDroneMap免费实现无人机三维重建?3种快速上手方法
如何用OpenDroneMap免费实现无人机三维重建?3种快速上手方法 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷 项目地址: https://gitcode.com/gh_mirrors/o…...
Sketch设计文件命名自动化:RenameIt插件企业级批量重命名解决方案
Sketch设计文件命名自动化:RenameIt插件企业级批量重命名解决方案 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代化设计工作流中ÿ…...
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战 1. 项目简介与核心价值 今天给大家分享一个特别实用的人脸检测工具——基于MogFace模型的高精度人脸检测系统。这个工具最大的亮点就是消费级显卡就能流畅运行,不需…...
文科生被AI大厂疯抢,月薪3万起,这条热搜,你真的看懂了吗?
最近有个话题悄悄冲上热搜,看得不少人心里一热——#AI大厂月薪3万疯抢文科生#。 事情起因是360创始人周鸿祎在一次采访里说了个挺颠覆的观点:“随着AI技术的发展,文科生将比理科生更吃香。”截图来源微博(如侵删) 他给…...
别再只盯着采样率了!用STM32H723的ADC做高精度FFT分析,这些坑我帮你踩过了
STM32H723高精度FFT实战:从ADC采样到频谱分析的工程化实现 频谱分析在工业振动监测、音频处理、电力系统谐波检测等领域有着广泛应用。STM32H723系列凭借其高性能ADC和浮点运算单元,为嵌入式实时频谱分析提供了硬件基础。但实际工程中,从ADC…...
LyricsX:让Mac音乐体验跃升的桌面歌词神器
LyricsX:让Mac音乐体验跃升的桌面歌词神器 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics 你是否也曾在Mac上听音乐时,因无法显示桌面歌词而感到遗…...
导师推荐!盘点2026年最受欢迎的AI论文工具
一天写完毕业论文在2026年已不再是天方夜谭。2026年AI论文工具全面升级,实测提速超50%,覆盖选题、文献分析、内容生成、降重润色、格式排版等全流程场景,真正帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(…...
