肥川川 2019-07-30 21:44 采纳率: 33.3%
浏览 1120
已采纳

请问父类中存在有参构造方法时,一定要存在一个同名的无参构造方法吗?

图片说明

图1为父类的无参构造方法和有参构造方法,若是将无参构造方法删除,则子类的有参构造方法会报错。

如图2

图片说明

百度后听说父类可以不存在无参构造方法,但是子类中要使用super(属性名)的形式,我尝试后仍然报错

图片说明

(有想过是不是因为这些属性都被private修饰过才不行,但是将private删去仍然不行)

所以是不是说明,父类中必须存在一个无参的构造方法,因为我们定义了一个有参的构造方法,系统不会再自动帮我们生成无参构造方法,所以要我们自己写出来?

还有就是子类中的这个有参构造方法算不算是对父类构造方法的重写?(似乎不是,重写的话我记得方法名也是要一样的,那么这个构造方法和父类之间的关系是什么呢?)

大佬们能指点一二吗?qwq

  • 写回答

7条回答 默认 最新

  • 1-只小猴子 2019-07-31 09:32
    关注

    1.在你的代码中,pikacar继承了cars (Java类名首字母记着要大写Pikacar/Cars,并且请遵守大驼峰形式PikaCar),父类cars重载(不是重写,谨记)了构造方法。
    如果重载构造方法后没有手动将无参构造方法写出,此时在你的子类pikacar中,构造方法中调用super相关方法,此时super就代表了你父类的无参构造,而你的父类cars已经重载了构造方法并且未手动写出无参构造,因此编译器找不到你的无参构造方法,就会报错。
    2.关于父类构造和子类的构造的关系,无关联,如果非要说关联的话就是当你创建子类对象时会首先调用父类的无参构造

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 脱敏项目合作,ner需求合作
  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴