【JAVASE】抽象类
1、抽象类概念
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。比如:

说明:
(1)矩形、三角形、椭圆都是图形,因此和Shape类之间的关系都是继承关系
(2)虽然图形类Shape中也存在draw的方法,但由于Shape类并不是具体的图形,因此其内部的draw的方法实际是没有办法实现的。
(3)由于Shape类没有办法描述一个具体的图形,导致其draw()方法无法具体实现,一次可以将Shape类设计为“抽象类”。
在打印图形案例中,我们发现父类Shape中的draw()方法并没有什么实际工作,主要的绘制图形都是有Shape的各种子类的draw()方法来完成的,像这种没有实际工作的方法,我们可以把它设计成一个抽象方法,包含抽象方法的类我们称之为抽象类。
2、抽象类语法
在java中,一个类如果被abstract修饰,则该类被称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出具体的方法体。
代码:

注意:抽象类也是类,内部也可以包含普通方法、成员变量、构造方法
3、抽象类特性
(1)抽象类不能直接实例化对象
代码:
Shape.java

Test.java

(2)抽象方法不能被private修饰
代码如下:

(3)抽象方法不能被final和static修饰,因为抽象方法要被子类重写
代码1:
代码2:

(4)抽象类必须被继承,并且子类要重写父类中的抽象方法,否则子类也是抽象类,必须使用abstract修饰。
当我们对抽象类的子类补充写父类的抽象方法时,会报一下错误:

但是如果也让子类被abstract修饰,则不会报错:

(5)抽象类不一定包含抽象方法,但是抽象方法一定是抽象类
(6)抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量
4、抽象类的作用
抽象类本身不能被实例化,要想使用,只能创建抽象类的子类,然后让子类重写抽象类中的方法。
有人可能有疑问,普通的类也可以被继承,普通的方法也可以被重写,为什么非得用抽象类和抽象方法呢?
确实如此,但是使用抽象类相当于多了一重编译器的校验。
如何理解校验?
比如:抽象类中有抽象方法,则子类继承时,父类中的抽象方法必须被重写,否则就会报错。
相关文章:
【JAVASE】抽象类
1、抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。比如: 说明&a…...
嵌入式硬件中PCB走线与过孔的电流承载能力分析
简介 使用FR4敷铜板PCBA上各个器件之间的电气连接是通过其各层敷着的铜箔走线和过孔来实现的。 由于不同产品、不同模块电流大小不同,为实现各个功能,设计人员需要知道所设计的走线和过孔能否承载相应的电流,以实现产品的功能,防止过流时产品烧毁。 文中介绍设计和测试FR4敷…...
动态规划之背包问题中如何确定遍历顺序的问题-组合or排列?
关于如何确定遍历顺序 322. 零钱兑换中,本题求钱币最小个数,那么钱币有顺序和没有顺序都可以,都不影响钱币的最小个数。 所以本题并不强调集合是组合还是排列。 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求…...
开源大模型与闭源大模型
概述 开源大模型和闭源大模型是两种常见的大模型类型,它们在以下方面存在差异: 开放性: 开源大模型:代码和模型结构是公开可用的,任何人都可以访问、修改和使用。闭源大模型:模型的代码和结构是私有的&…...
python+selenium - UI自动框架之封装查找元素
单一的元素定位方法不能满足所有元素的定位,可以根据每个元素的特点来找到合适的方法,可以参考下图的方法: elementFind.py from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_con…...
java 拦截器-用户无操作超时退出利用Redis
1、授权过滤,只要实现AuthConfigAdapter接口 2、利用Redis token超时时间,用户访问后台续时 效果 Component public class AuthFilter implements Filter {private static Logger logger LoggerFactory.getLogger(AuthFilter.class);Autowiredprivat…...
民国漫画杂志《时代漫画》第16期.PDF
时代漫画16.PDF: https://url03.ctfile.com/f/1779803-1248612470-6a05f0?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!...
线程池以及日志类的实现
目录 线程池: 日志类: 可变参数以及相关函数 1.va_list 2. va_start 3. va_end 日志Log类 线程池 线程池: 是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着 监督管理者分配可并发执行…...
基于长短期记忆网络 LSTM 的送餐时间预测
前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…...
K-means聚类算法详细介绍
目录 🍉简介 🍈K-means聚类模型详解 🍈K-means聚类的基本原理 🍈K-means聚类的算法步骤 🍈K-means聚类的优缺点 🍍优点 🍍缺点 🍈K-means聚类的应用场景 🍈K-mea…...
SAP FS00如何导出会计总账科目表
输入T-code : S_ALR_87012333 根据‘FS00’中找到的总账科目,进行筛选执行 点击左上角的列表菜单,选择‘电子表格’导出即可...
ROS参数服务器
一、介绍 参数服务器是用于存储和检索参数的分布式多机器人配置系统,它允许节点动态地获取参数值。 在ROS中,参数服务器是一种用于存储和检索参数的分布式多机器人配置系统。它允许节点动态地获取参数值,并提供了一种方便的方式来管理和共享配…...
QCC---DFU升级变更设备名和地址
QCC---DFU升级变更设备名和地址 这个很多人碰到这个疑问,升级了改不了设备名和地址 /******************************************************************************* Copyright (c) 2018 Qualcomm Technologies International, Ltd. FILE NAME sink_dfu_ps.c DESCRIPT…...
[力扣题解] 695. 岛屿的最大面积
题目:695. 岛屿的最大面积 思路 代码 深度优先搜索 // 深度搜索 class Solution { private:int area_max 0;int dir[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};void dfs(vector<vector<int>>& grid, vector<vector<bool>>& …...
AI模型发展路径探析:开源与闭源,何者更胜一筹?
AI模型发展路径探析:开源与闭源,何者更胜一筹? 在当今快速发展的人工智能领域,AI模型成为推动技术创新和应用落地的关键。而评价一个AI模型“好不好”“有没有发展”,往往会引向一个重要话题:开源与闭源这…...
concurrency 并行编程
Goroutine go语言的魅力所在,高并发。 线程是操作系统调度的一种执行路径,用于在处理器执行我们在函数中编写的代码。一个进程从一个线程开始,即主线程,当该线程终止时,进程终止。这是因为主线程是应用程序的原点。然后…...
JavaScript如何让一个按钮的点击事件在完成之前禁用
在JavaScript中,要禁用一个按钮的点击事件直到某个操作完成,你可以将其点击事件用匿名函数的方式书写。 你可以将其在点击函数内设置为null来禁用按钮。 <button id"butto_n">点击抽奖</button><script>butto_n.onclick bu…...
透视App投放效果,Xinstall助力精准分析,让每一分投入都物超所值!
在移动互联网时代,App的推广与投放成为了每一个开发者和广告主必须面对的问题。然而,如何精准地掌握投放效果,让每一分投入都物超所值,却是一个令人头疼的难题。今天,我们就来谈谈如何通过Xinstall这个专业的App全渠道…...
【Linux杂货铺】进程通信
目录 🌈 前言🌈 📁 通信概念 📁 通信发展阶段 📁 通信方式 📁 管道(匿名管道) 📂 接口 编辑📂 使用fork来共享通道 📂 管道读写规则 &…...
常用API(正则表达式、爬取、捕获分组和非捕获分组 )
1、正则表达式 练习——先爽一下正则表达式 正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。 需求:假如现在要求校验一个qq号码是否正确。 规则:6位及20位之内,0不能在开头,必须全部是数字…...
突破学术资源获取壁垒:Unpaywall开源工具全解析
突破学术资源获取壁垒:Unpaywall开源工具全解析 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywall-extension …...
口碑好的余姚加工中心编程培训哪家专业
在浙江余姚这座"中国模具之城",寻找一家专业可靠的加工中心编程培训机构,对于想要在模具数控领域发展的技术人员来说至关重要。余姚作为全国模具产业集聚地,拥有众多培训机构,但如何在众多选择中找到真正专业、实用的培…...
3步掌握FanControl:Windows平台最专业的免费风扇控制方案
3步掌握FanControl:Windows平台最专业的免费风扇控制方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...
ABAP RFC SQL 模糊查询与动态区间条件实战解析
1. ABAP RFC接口中的模糊查询实战技巧 在SAP系统开发中,RFC(Remote Function Call)接口是实现跨系统数据交互的核心技术。当外部系统需要从SAP获取数据时,模糊查询功能往往成为刚需。不同于选择屏幕的便捷操作,RFC接口…...
JiYuTrainer深度解析:从技术基石到实战突破的极域电子教室控制方案
JiYuTrainer深度解析:从技术基石到实战突破的极域电子教室控制方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer JiYuTrainer作为一款专注于极域电子教室控制的开源…...
力扣热门100题之二叉树的最近公共祖先
一句话核心思路递归遍历二叉树:如果当前节点是 p 或 q,直接返回它去左子树找,去右子树找如果左右都找到了 → 当前节点就是答案如果只在左边找到 → 答案在左边如果只在右边找到 → 答案在右边完整代码实现:/*** Definition for a…...
第二十六节:专栏结语与未来演进——从单体Skill到多Agent协作
引言 上一章,我们走完了Skill开发的“最后一公里”,完成了打包、发布,将个人智慧转化为了可流通的数字资产。至此,你已经掌握了开发一个高质量、可交付单体Skill的全套技能。然而,技术的浪潮永不停歇,当无数…...
绝区零一条龙:5大核心功能彻底解放你的游戏时间
绝区零一条龙:5大核心功能彻底解放你的游戏时间 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 你是否厌倦了在…...
Ubuntu 20.04下用Python3搞定Mininet可视化编辑器Miniedit(附报错修复指南)
Ubuntu 20.04下Python3运行Miniedit的完整解决方案 在Linux网络仿真领域,Mininet凭借其轻量级和高度可定制的特性,成为众多开发者和研究人员的首选工具。而Miniedit作为Mininet的可视化前端,本应让拓扑创建变得简单直观,但在Pytho…...
Qwen3.5-9B-AWQ-4bit图文问答进阶:结合上下文的多图对比分析方法
Qwen3.5-9B-AWQ-4bit图文问答进阶:结合上下文的多图对比分析方法 1. 多图对比分析的价值与应用场景 在日常工作和生活中,我们经常需要比较和分析多张图片之间的异同。传统的人工对比方法耗时耗力,而借助Qwen3.5-9B-AWQ-4bit这样的多模态模型…...
