接口(interface) 和 抽象类(abstract class) 的使用区别

news/2024/12/28 15:37:41/

接口(interface) 和 抽象类(abstract class) 的使用区别

在实践中,可能不太清楚什么时候使用接口,什么时候使用抽象类。

一个最准确的比喻可能会有所帮助。

可以将 interface 想象为定义“can-do”或“is-a”关系,而abstract class 更应该是更严格的“is-a”关系。
两者的区别可能很微妙,可以经常使用功能其中一种来代替另一种。

在实践中,大型java库通常有一个层次结构的接口,这些接口由提供某些方法实现的抽象类扩展,然后
由具体类实现。

Collection 接口就是一个很好的例子:它扩展了Iterable(它的父接口),并由很多子接口实现(如
ListSetMap),这些子接口又有自己的抽象实现(AbstractListAbstractSetAbstractMap)。

然而,对于较小的程序,层次结构通常比较复杂,有时从抽象类开始。

例如,我们可以只在层次结构的顶部使用AbstractBoundedQueue,而完全跳过使用BoundedQueue接口。


http://www.ppmy.cn/news/6025.html

相关文章

Hive+Spark离线数仓工业项目实战--环境构建(3)

项目环境配置 根据需求实现项目环境配置 实施 - 注意:所有软件Docker、Hadoop、Hive、Spark、Sqoop都已经装好,不需要额外安装配置,启动即可 配置网络:如果你的VM Nat网络不是88网段,请按照以下修改 - 修改Linux虚拟…

【Three.js入门】标准网格材质、置换贴图、粗糙度贴图、金属贴图、法线贴图

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

503.下一个更大元素II,42. 接雨水

503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数…

C语言--操作符

文章目录一、数据的存储二、算术操作符三、移位操作符左移位操作符<<右移操作符四、位操作符五、赋值操作符六、单目操作符sizeof前后置七、关系操作符一、数据的存储 如果想要准确的掌握每个操作符的作用&#xff0c;那么首先需要理解数据在计算机中的存储和运算规则。…

JMeter+Ant+Jenkins接口自动化测试框架

一:简介 大致思路&#xff1a;Jmeter可以做接口测试&#xff0c;也能做压力测试&#xff0c;而且是开源软件&#xff1b;Ant是基于Java的构建工具&#xff0c;完成脚本执行并收集结果生成报告&#xff0c;可以跨平台&#xff0c;Jenkins是持续集成工具。将这三者结合起来可以搭…

扫雷游戏的设计(百分百还原电脑操作)

目录 &#x1f332;了解扫雷游戏的作用原理并梳理思路 &#x1f332;扫雷游戏前期部分完善 &#x1f337;文件的创建 &#x1f337;创建菜单&#xff0c;完善主函数 &#x1f333;代码呈现&#xff1a; &#x1f332;扫雷游戏主题内容 &#x1f334;第一步初始化棋盘 &#x1…

蓝牙耳机什么牌子好?音质好、配置高的蓝牙耳机分享

​经常听到很多网友在讨论哪些蓝牙耳机好用&#xff0c;什么蓝牙耳机的配置高......选购蓝牙耳机无非就是音质、蓝牙技术、续航、佩戴体验等各方面条件&#xff0c;还有哪位朋友不知道该如何选购蓝牙耳机的&#xff1f;根据我对蓝牙耳机的了解&#xff0c;从网上整理了好几款蓝…

5.Linux文件管理命令---cp复制文件

文章目录Linux文件管理命令cp&#xff1a;复制文件示例介绍&#xff1a;Linux文件管理命令 cp&#xff1a;复制文件 作用&#xff1a;文件或目录的复制。 用法&#xff1a;cp [选项]… [-T] 源文件 目标文件 cp [选项]… 源文件… 目录 cp [选项]… -t 目录 源文件… 将<源…