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

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 {
          // 子类构造器必须显式调用 super
          public Child() {
              super(0); // 必须作为第一行语句
              // ...
          }
      }

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


http://www.kler.cn/a/428703.html

相关文章:

  • cuda从零开始手搓PB神经网络
  • Apache Tomcat文件包含漏洞复现(详细教程)
  • 工业制造离不开的BOM
  • python milvus及curl命令进行query请求
  • 一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用
  • Jenkins 启动
  • 【Unity高级】在编辑器中如何让物体围绕一个点旋转固定角度
  • 解锁函数的魔力:Python 中的多值传递、灵活参数与无名之美
  • 11-27 周三 Postman自动解析响应查询可用节点数量
  • Python机器学习笔记(四、监督学习算法:朴素贝叶斯分类器和决策树)
  • 计算机毕业设计Python轨道交通客流预测分析可视化 智慧交通 机器学习 深度学习 人工智能 爬虫 交通大数据
  • _pickle.UnpicklingError: STACK_GLOBAL requires str报错解决办法
  • 数字化编辑器震撼升级! 开启AI编写标准新篇章
  • ​‌Spring Boot中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数​,详细示例
  • 4. React 性能优化技巧:如何让你的应用更快
  • 使用 postman 传递 binary 类型的图片到后端接口遇到的坑
  • C#设计模式--策略模式(Strategy Pattern)
  • AIGC 与艺术创作:机遇
  • Python Flask Web框架快速入门
  • Docker Compose实战一( 轻松部署 Nginx)
  • TCP/IP 协议栈高效可靠的数据传输机制——以 Linux 4.19 内核为例
  • 19 设计模式之享元模式(电影院座位预定案例)
  • spring boot 配置文件加载的加载和使用
  • multiprocessing模块怎么使用?
  • 【MIT-OS6.S081作业1.3】Lab1-utilities primes
  • 基于php+mysql的旅游网站——记忆旅行 旅游分享 攻略分享 设计与实现 源码 配置 文档