首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Java类与继承
📅 2026/10/6 18:51:25
✍️ 爱科研究院
👁 阅读 3,247
Java 面向对象类的继承extends与重写前言这是学习Java类与继承的笔记用动物作为父类狗猫作为子类进行一个示范。本篇记录继承相关的基础知识。环境JDK 17IntelliJ IDEA纯 Java 项目未使用 Maven一、什么是继承继承也就是让子类自动拥有父类所有的属性和方法关键字extendspublicclassDogextendsAnimal{...}即Dog为Animal的子类这样Dog就不用重复写Animal已经有的属性和方法了。有利于进行代码复用公共的部分放父类各子类只写自己特有的部分。二、父类与子类父类Animal代表所有动物的共性名字、年龄会叫、会动。publicclassAnimal{privateStringkind;//设置私有属性种类私有属性只能通过类中设定的方法访问privateintage;//年龄publicvoidsetKind(Stringkind){this.kindkind;//设置函数让外界可以访问私有属性}publicStringgetKind(){returnkind;//设置函数让外界可以获取私有属性}publicvoidsetAge(intage){this.ageage;}publicintgetAge(){returnage;}publicvoidshout(){System.out.println(kind发出叫声);//通用函数}publicvoidmove(){System.out.println(kind做出动作);}}注意kind、age都是private私有属性。这是封装属性私有外面要通过setKind/getKind这类方法合称getter/setter来访问。三、子类与私有属性不能直接访问让Dog继承AnimalpublicclassDogextendsAnimal{publicvoidspeakKind(){System.out.println(getKind());}}这里Dog里不能写kind因为kind是父类的私有属性无法直接访问只能通过继承来的getKind()来访问。这就是封装的作用子类虽然能继承但不能直接访问只能通过公有的 getter/setter来读写。四、方法重写override与 super父类的shout()只打印通用的发出叫声。对于子类Dog应该有狗的叫法因此需要重写方法publicclassDogextendsAnimal{publicvoidshout(){super.shout();//先执行父类的通用方法System.out.println(汪汪);//加上子类自己的}}重写覆盖方法名、参数、返回值必须完全一样只有方法函数体换成子类的。super.shout();表示先调用一遍父类自己的那版方法。注意如果写成this.shout();就变成了调用自己就会形成死循环。五、子类新增自己的方法除了重写子类可以加父类没有的方法比如Dog的speakKind()publicclassDogextendsAnimal{publicvoidspeakKind(){System.out.println(getKind());}}用猫再写一个子类Cat作为对比只需重写shout()/move()publicclassCatextendsAnimal{publicvoidshout(){super.shout();System.out.println(喵喵);}publicvoidmove(){super.move();System.out.println(走动);}}六、测试publicclassTest{publicstaticvoidmain(String[]args){DogdognewDog();//新建Dog对象dog.setKind(小狗);//通过方法设置私有属性dog.setAge(3);dog.shout();//dog类重写过的方法小狗发出叫声dog.move();System.out.println(dog.getKind()今年dog.getAge()岁);//通过getter来访问内容}}运行后发现同样是shout()狗汪汪、猫喵喵父类定好框架子类则可以按照各自的需求具体实现。七、错误记录super写成了this一开始重写时写this.shout();结果方法自己调自己造成了无限递归。调父类版本必须用super。八、总结本篇掌握了继承、方法重写的基本概念。继承让共性代码放在父类复用子类只需要重写差异部分这就是面向对象复用 扩展的思想。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/6 18:46:25
Spring AI Alibaba 快速上手:使用 DashScope 实现 Tool Calling(函数调用)实战
2026/10/6 18:46:25
现代 JavaScript 教程:遍历嵌套 ul/li 树,统计每个节点的后代数量
2026/10/6 18:46:25
DirectX 12 Raytracing(DXR)实战示例全解析:DirectX-Graphics-Samples 中的教程与高级场景指南
2026/10/6 22:56:50
汇编核心:MOV指令与PUSH/POP栈操作,理解程序底层数据流动
2026/10/6 22:56:50
context-mode:为终端开发打造上下文快照与现场恢复工具
2026/10/6 22:56:50
Sublime Text 高效配置与插件指南:从多光标到LSP实战
2026/10/6 22:56:50
改进粒子群算法求解光储系统规划运行综合优化:模型、Python实现与复现要点
2026/10/6 22:56:50
HTML5展示型企业网站源代码改造与交付全流程指南
2026/10/6 22:51:49
Apache SeaTunnel 二月动态:Zeta 引擎与 CDC 关键修复解析
2026/10/6 1:04:29
搭建无线EEG采集前端:BW16+ESP32-CYD实时波形显示实战
2026/10/6 1:04:29
CH10D功放芯片DIY音箱实战:从选型到调试的完整指南
2026/10/6 1:04:29
视频序列目标跟踪实战:解决ID跳变与遮挡丢失
2026/10/6 15:41:36
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/6 4:47:52
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/6 13:15:25
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/6 21:51:29
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/6 22:05:33
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/6 22:06:19
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)