当前位置: 首页 > news >正文

3.0 java中继承中的super作用

一句话总结它的作用:super 代表的是“父类”(或者叫超类、基类)空间,用来在子类中访问父类的成员(属性、方法、构造器)。

1. 使用场景一:用 super 调用父类的构造器(最常用)

当你在 new 一个子类对象时,子类的构造器必须先调用父类的构造器,确保从父类继承过来的属性能够被正确初始化。

🚨 核心规则:隐式调用
如果你在子类的构造器里没有手动写 super(),Java 编译器会在第一行自动帮你加上 super();(调用父类的无参构造器)。

classFather{publicFather(){System.out.println("1. 父类无参构造器被调用");}}classSonextendsFather{publicSon(){// 编译器在这里偷偷加了一行:super();System.out.println("2. 子类构造器被调用");}}

当你 new Son() 时,控制台会先打印 1,再打印 2。

💡 显式调用:父类没有无参构造器怎么办?
如果父类只定义了带参数的构造器,编译器就不会自动加 super() 了。这时子类必须手动显式调用 super(参数),否则编译直接报错。

classFather{StringlastName;// 父类只有带参构造器publicFather(StringlastName){this.lastName=lastName;}}classSonextendsFather{intage;publicSon(StringlastName,intage){super(lastName);// 🚨 必须手动调用父类带参构造器,且必须写在第一行!this.age=age;}}

2. 使用场景二:用 super 区分同名的属性(成员变量)

如果子类起了一个和父类一模一样的变量名,父类的变量就会被“隐藏”。此时如果你想在子类中访问父类的那个变量,就需要加上 super. 前缀。

classFather{Stringname="张三(老爸)";}classSonextendsFather{Stringname="张小三(儿子)";publicvoidshow(){System.out.println(name);// 打印:张小三(儿子) —— 默认就近原则System.out.println(this.name);// 打印:张小三(儿子) —— 显式指定当前子类System.out.println(super.name);// 打印:张三(老爸) —— 🚨 通过 super 突破限制,访问父类}}

3. 使用场景三:用 super 调用父类被重写(Override)的方法

在面向对象开发中,子类经常会重写父类的方法。但有时候,子类并不想完全抛弃父类的方法,而是想在父类方法的基础上进行“功能增强”。

这时就可以用 super.方法名()。

classRobot{publicvoidwork(){System.out.println("开机,开始扫描环境...");}}classCleaningRobotextendsRobot{@Overridepublicvoidwork(){super.work();// 🚨 先让父类做它该做的事(开机和扫描)System.out.println("开始拖地、擦桌子...");// 子类特有的拓展功能}}
http://www.jsqmd.com/news/1107317/

相关文章:

  • 基于LENA-R8与STM32的全球物联网高精度定位方案
  • VSCode 多语言调试配置实战:AI编程工具助力 Python/Go/Node.js 3 类项目断点精准命中
  • Synology Video Info Plugin:三步快速安装,打造完美群晖影视库
  • 告别视频黑边困扰:GSYVideoPlayer比例适配的进阶实践
  • 深海定点监测如何选稳定单点海流计?偶信产品适配复杂海域工况吗?
  • QCMA:基于Qt框架的PS Vita跨平台内容管理技术解析与实现
  • GreaterWMS仓库管理系统:从零到一的5步部署实战指南
  • 模型服务化实战:从Jupyter到高可用生产部署
  • Windows系统设置自动登录的方式
  • 拒绝盲目踩坑!6款经过市场验证的高性价比新手吉他推荐
  • Ubuntu系统Postgres SQL数据库迁移
  • AI模型量化与剪枝技术实战:从原理到部署优化
  • 3步掌握Parabolic视频下载器:免费开源跨平台下载解决方案完全指南
  • 工程费用--项目的“血肉骨架”
  • npm依赖漏洞修复提速3倍:Snyk集成CI安全扫描的4步落地实践
  • AEM Assets 太重?企业级 DAM 选型时真正要看这 7 个问题
  • AI 时代大龄程序员的优势凸显:从技术执行者到系统编排者的历史性跃迁
  • AI驱动的数据标注流水线:从预标注到闭环进化的工业实践
  • VSCode 多项目协同开发:AI编程工具工作区管理的 4 种高效配置方案
  • 掌握Delphi逆向工程:IDR反编译工具完全指南
  • 百度网盘直链解析终极指南:5分钟实现高速下载的完整教程
  • 打完井能不能帮忙做水质检测,保障用水健康?
  • 西安养老预约小程序搭建,家属实时查看功能开发实操
  • 窗口的模态非模态
  • Unreal 5 之 Pico4 Ultra 一体机环境配置
  • 库存自动加减的进销存台账怎么做,有没有适合小店的模板?
  • 7-Zip免费压缩软件终极指南:三步掌握高效文件管理
  • 第04篇:开发工具链与部署环境——让训练在“别人电脑上“也能跑
  • 2026年开源工具和商用自动化工具选型指南|优缺点全面对比
  • 终极指南:如何用GTA5线上小助手提升你的游戏体验