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

JAVA子类的无参构造器中第一行的super

在 Java 中,子类的构造器是否需要显式调用 super 取决于父类(超类)的构造器。

  1. 如果父类有一个无参构造器

    • 如果父类有一个无参构造器,那么子类的构造器可以不显式调用 super。在这种情况下,如果子类构造器的第一行没有显式调用 super 或 this,编译器会自动插入一个无参的 super() 调用。
    • 例如:
       

      java

      class Parent {// 父类有一个无参构造器
      }class Child extends Parent {// 子类构造器,自动插入 super()public Child() {// ...}
      }
  2. 如果父类没有无参构造器

    • 如果父类没有无参构造器,那么子类的构造器必须在第一行显式调用 super 来调用父类的某个构造器,并且必须作为子类构造器的第一行语句。
    • 例如:
       

      java

      class Parent {// 父类没有无参构造器,只有带参数的构造器public Parent(int x) {// ...}
      }class Child extends Parent {// 子类构造器必须显式调用 superpublic Child() {super(0); // 必须作为第一行语句// ...}
      }

总结来说,如果父类提供了无参构造器,子类的构造器可以不显式调用 super,因为编译器会自动插入这个调用。如果父类没有无参构造器,子类的构造器必须显式调用 super 并且必须放在第一行。这是 Java 构造器调用的规则,确保了对象在创建时能够正确地初始化其父类部分的状态。

http://www.lryc.cn/news/500140.html

相关文章:

  • mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法
  • Unity教程(十九)战斗系统 受击反馈
  • lanqiaoOJ 3744:小蓝的智慧拼图购物 ← pair+优先队列
  • Spring Boot教程之二十一:文件处理
  • 【Linux】Linux的基本常识+指令
  • Rocky Linux 9.3系统搭建Slurm环境【笔记】
  • 原生微信小程序使用原子化tailwindcss
  • 《掌握Nmap:全面解析网络扫描与安全检测的终极指南》
  • k8s-Informer概要解析(2)
  • UE5基本数据类型
  • Next.js 系统性教学:中间件与国际化功能深入剖析
  • 鸿蒙HarmonyOS元服务应用开发实战完全指导
  • CT中的2D、MPR、VR渲染、高级临床功能
  • 利用docker-compose来搭建flink集群
  • 力扣打卡10:K个一组翻转链表
  • 深度学习详解
  • 鸿蒙分享(一):添加模块,修改app名称图标
  • 【Redis】not support: redis
  • 【集群划分】含分布式光伏的配电网集群电压控制【33节点】
  • 嵌入式蓝桥杯学习5 定时中断实现按键
  • 【Java】类似王者荣耀游戏
  • C++<基本>:union是没有构造函数和析构函数的
  • SQL中IN和NOT操作符的用法
  • C++平常学习用的
  • JAVA |日常开发中Servlet详解
  • QT实战--QTreeWidget实现两种行颜色+QListWidget样式
  • RPA在IT运维中的实践:自动化监控与维护
  • C# 设置方法执行超时,则执行下一个方法
  • 【iOS】UIImagePickerController
  • 现代企业营销模式创新:链动 2+1 模式 AI 智能名片商城小程序的应用与价值