发布时间:2026/8/31 3:17:36
Java笔记:面向对象继承、this与super关键字详解 一、继承概述继承是面向对象编程的三大特性之一封装、继承、多态。它允许我们基于一个已有的类父类/超类来创建一个新的类子类/派生类。子类会自动拥有父类的属性和方法同时可以定义自己特有的属性和方法或者重写父类的方法以满足新的需求。1.1 继承的作用与好处代码复用子类可以直接使用父类中已定义好的属性和方法无需重复编写。提高可维护性公共逻辑集中在父类修改时只需改动一处。建立类之间的层次关系使得代码结构更清晰更符合现实世界的逻辑如“学生”是一种“人”。1.2 继承的语法在Java中使用extends关键字来实现继承。// 父类classAnimal{Stringname;publicvoideat(){System.out.println(name正在吃东西);}}// 子类继承父类classDogextendsAnimal{publicvoidbark(){System.out.println(name汪汪叫);}}在上面的例子中Dog类通过extends Animal继承了Animal类的name属性和eat()方法。因此Dog对象可以直接使用这些成员。二、this 关键字详解this关键字代表当前对象的引用。它可以在类的实例方法或构造器中使用。2.1 this 的主要用途1. 区分成员变量与局部变量当方法的形参或局部变量与类的成员变量同名时使用this.变量名来明确指代成员变量。classPerson{privateStringname;// 成员变量publicvoidsetName(Stringname){// 局部变量形参this.namename;// 将局部变量name的值赋给成员变量this.name}publicStringgetName(){returnthis.name;// 返回当前对象的name属性}}2. 在构造器中调用其他构造器在一个构造器内部可以使用this(参数列表)来调用本类的另一个构造器。此调用必须是构造器内的第一条语句。classStudent{privateStringname;privateintage;publicStudent(){this(未知,0);// 调用本类的双参构造器}publicStudent(Stringname,intage){this.namename;this.ageage;}}3. 作为方法的返回值有时需要返回当前对象本身以支持链式调用。classCalculator{privateintvalue;publicCalculatoradd(intnum){this.valuenum;returnthis;// 返回当前Calculator对象}publicintgetValue(){returnvalue;}}// 链式调用CalculatorcalcnewCalculator();intresultcalc.add(5).add(10).getValue();// result 15三、super 关键字详解super关键字代表对父类对象的引用。它用于在子类中访问父类的成员属性、方法、构造器。3.1 super 的主要用途1. 访问父类的成员变量和方法当子类重写了父类的方法或隐藏了父类的成员变量时可以使用super.成员名来明确调用父类的版本。classAnimal{Stringtype动物;publicvoidsound(){System.out.println(动物发出声音);}}classCatextendsAnimal{Stringtype猫科动物;// 隐藏了父类的type变量Overridepublicvoidsound(){super.sound();// 调用父类的sound方法System.out.println(并且喵喵叫);}publicvoidprintType(){System.out.println(子类type: type);// 输出猫科动物System.out.println(父类type: super.type);// 输出动物}}2. 调用父类的构造器在子类的构造器中可以使用super(参数列表)来调用父类的构造器。此调用必须是子类构造器内的第一条语句。如果子类构造器没有显式调用super(...)或this(...)编译器会自动加上super()调用父类的无参构造器。classVehicle{privateStringbrand;publicVehicle(Stringbrand){this.brandbrand;System.out.println(Vehicle构造器被调用品牌brand);}}classCarextendsVehicle{privateintseats;publicCar(Stringbrand,intseats){super(brand);// 必须放在第一行调用父类有参构造器this.seatsseats;System.out.println(Car构造器被调用座位数seats);}}3.2 this 与 super 的对比特性thissuper指向对象当前类实例对象本身父类实例在子类对象中主要用途1访问本类的成员变量、方法访问父类的成员变量、方法主要用途2在本类构造器中调用其他构造器在子类构造器中调用父类构造器调用位置必须放在构造器第一行this(...)必须放在构造器第一行super(...)是否可同时存在在同一个构造器中this(...)和super(...)不能同时出现四、继承中的方法重写Override方法重写是子类对父类中允许访问的方法的实现过程进行重新编写。重写是实现多态的关键。4.1 重写的规则方法名、参数列表必须完全相同。返回类型在Java 5及以后子类重写方法的返回类型可以是父类方法返回类型的子类协变返回类型。访问权限子类方法的访问权限不能比父类方法更严格例如父类是protected子类可以是public或protected但不能是private。异常子类方法抛出的异常不能比父类方法抛出的异常更宽泛。被final、static、private修饰的方法不能被重写。4.2 Override 注解建议在重写方法上添加Override注解。这可以让编译器帮助检查该方法是否正确地重写了父类方法避免因拼写错误等原因导致意外的新方法定义。classParent{publicvoidshow(){System.out.println(Parent show);}}classChildextendsParent{Override// 加上注解编译器会检查publicvoidshow(){super.show();// 可选先调用父类逻辑System.out.println(Child show);}}五、综合示例与总结下面通过一个综合示例来巩固理解// 父类classEmployee{privateStringname;privatedoublesalary;publicEmployee(Stringname,doublesalary){this.namename;this.salarysalary;}publicvoidwork(){System.out.println(name正在工作);}publicfinalvoidgetPaid(){// final方法子类不能重写System.out.println(name领取薪水salary);}}// 子类classManagerextendsEmployee{privatedoublebonus;publicManager(Stringname,doublesalary,doublebonus){super(name,salary);// 调用父类构造器初始化name和salarythis.bonusbonus;}Overridepublicvoidwork(){super.work();// 调用父类的work方法System.out.println(并且正在管理团队);}// 不能重写 getPaid() 方法因为它是final的// 但可以新增方法publicvoidholdMeeting(){System.out.println(经理正在主持会议);}}publicclassMain{publicstaticvoidmain(String[]args){ManagermgrnewManager(张三,15000,5000);mgr.work();// 输出张三正在工作 并且正在管理团队mgr.getPaid();// 输出张三领取薪水15000.0mgr.holdMeeting();// 输出经理正在主持会议}}关键总结继承 (extends)建立“is-a”关系实现代码复用和层次化设计。this指代当前对象用于区分同名变量、调用本类构造器、支持链式调用。super指代父类对象用于访问被隐藏的父类成员、调用父类构造器。方法重写 (Override)子类重新定义父类方法的行为是实现运行时多态的基础。构造器调用链子类构造器必须直接或间接调用父类构造器且super(...)或this(...)必须位于第一行。掌握继承、this和super是理解Java面向对象编程的核心也是学习多态、抽象类、接口等高级特性的重要基础。

相关新闻

2026/8/31 13:19:50

C# GRR 测量系统分析:3步实现计量型数据重复性与再现性计算

C#实现GRR测量系统分析:从理论到工业级代码实践在制造业和质量控制领域,测量系统分析(MSA)是确保数据可靠性的基石。GRR(量具重复性与再现性)作为MSA的核心指标,直接关系到生产决策的准确性。本…

2026/8/30 1:37:23

担心源码外传?2026 盘点 6 款源代码防泄密软件,中小企业刚需

不少中小企业遭遇员工带走源码造成巨大损失,很多管理者担心源码外传 特意整理 2026 盘点 6 款源代码防泄密软件 这些源代码防泄密软件适配中小团队,操作简单 是企业守住开发成果必不可少的工具。 一、安秉源代码加密软件 1、源码文件透明加密&#x…

2026/8/31 10:49:10

TS2007FC与PIC32MX664H音频系统设计与优化

1. TS2007FC与PIC32MX664F064L的黄金组合解析在音频处理领域,硬件选型往往决定了系统的最终表现上限。TS2007FC这颗3W无滤波D类音频功率放大器,与PIC32MX664F064L这款MIPS内核微控制器的组合,堪称嵌入式音频系统的"黄金搭档"。我曾…

2026/8/31 16:59:37

城市易涝点监测预警平台是什么?5 大核心功能与应用价值详解

夏季汛期强降雨频发,城市下穿桥、立交桥底、隧道涵洞、低洼路段等区域在短时间内极易成为积水高发点。传统人工巡查方式存在时效滞后、盲区较多、人力成本高、信息传递低效等短板,已难以匹配现代城市精细化治理与安全应急的要求。以物联网、大数据、人工…

2026/8/31 16:59:37

基于Spark的信用卡评分卡模型开发:从特征工程到分布式建模实战

简介:本资源是一份面向大数据初学者与高校课程设计实践者的Spark数据分析实战项目,聚焦信用卡评分建模这一典型金融风控场景,解决真实业务中客户信用风险识别与量化评估问题。压缩包共22个文件,包含4个核心Python脚本(…

2026/8/31 16:59:37

用 Ace Data Cloud 快速接入 AI 音乐生成:Producer Audios API 实战指南

用 Ace Data Cloud 快速接入 AI 音乐生成:Producer Audios API 实战指南 AIGC 正在从“生成文字、生成图片”快速扩展到“生成音频、生成视频、生成完整内容资产”。对于开发者和产品团队来说,AI 音乐生成已经不只是一个好玩的工具,而是可以直…

2026/8/31 16:59:36

GLM-5.3-Flash与MHS:模型接入、网关配置与API排错指南

这期早报真正值得关注的,不是“又发布了一个新模型”,也不是“Anthropic 又提出一个新概念”。把热搜词放在一起看,你会发现一个更明确的信号:GLM-5.3-Flash 发布后,社区里讨论最多的是“怎么在 ccswitch 里配置”“怎…

2026/8/31 16:59:35

SketchUp一键渲染实战:提示词下方面板配置与出图流程

一、写在前面的结论 这次我们来看一个在 SketchUp(草图大师)用户群里经常被问到的工作方式:SU 一键渲染,以及渲染面板里“提示词”下方的那些按钮和参数到底怎么用。 很多人在 SU 里装完渲染插件后,打开面板会看到“提…

2026/8/31 16:54:35

Realtek USB无线网卡驱动安装全攻略:从RTL8188E到8812A的Win10/11实战

简介:本资源是专为Windows平台用户整理的Realtek多型号USB无线网卡通用驱动合集,覆盖RTL8188C/8188E/8192C/8192E/8811A/8812A/8723B等主流芯片,适用于驱动失效、连接不稳定、系统升级后失联等典型场景,特别适合IT支持人员、硬件维…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/31 0:07:32

STM32C5设备支持包(IAR DFP)安装指南与常见坑

上一阵子在IAR里折腾一块基于STM32C5系列的新板子,工程从STM32CubeMX导出来之后怎么都编译不过。报错信息很干脆:找不到设备描述文件。跟着错误路径去查,发现指向的是一个让我愣了一下的名字:STMicroelectronics.stm32c5xx.2.1.0.…

2026/8/31 0:07:32

STM32N657 SWO引脚矛盾:CubeMX显示PB3,数据手册为PB5

拿到STM32N657这颗料的第一天,我就撞上了一个让人原地懵圈的引脚矛盾:CubeMX里清清楚楚显示SWO在PB3,翻开数据手册的引脚说明表,却赫然写着PB5。对于一个靠SWO输出调试日志吃饭的人而言,这种"工具和手册打架"…

2026/8/31 12:44:45

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/31 9:19:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/31 6:53:02

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…