服了。 2021-05-20 19:22 采纳率: 20%
浏览 21

emmm,我有一个小问题想问一下大家。 图一图二是我的题目。 图三图四图五是我修改好的代码。 图六和

emmm,我有一个小问题想问一下大家。 图一图二是我的题目。 图三图四图五是我修改好的代码。 图六和是我在修改前碰到的一个error.之后我在person.Java那个文件中加了 public person(){}才运行成功 大概知道自己之前错了是因为在person.Java那个文件里少了public Person (){}.所以才造成了图六的标红。但呃没看明白我少的这句,它是什么意思有什么作用呢?图六的标红我一个个词翻大概是说 暗含的父类person未定义构造方法,需要定义一个明确的构造方法。可是我不是之前已经定义了一个 public person(String ID,String name)的构造方法吗?为什么不可以,而要新写public person(){}呢? 求大佬解答,蟹蟹您!
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-06-13 22:05
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 问:为什么在Person.java文件中定义了一个构造方法public Person(String ID, String name),还需要再定义一个public Person(){}构造方法呢? 回答: 在Java中,当一个类没有声明任何构造函数时,系统会为它自动创建一个默认构造函数。这个默认构造函数没有任何参数,方法体也为空。但是,当你自定义一个构造方法时,系统默认的构造函数将不再被创建。这也就是你问的问题的答案。 在你的例子中,你创建了一个public Person(String ID, String name)构造方法,因此系统默认的无参数构造函数已经不存在了。如果你想在不传递参数的情况下创建一个Person对象,你就需要自己定义一个无参构造函数public Person(){}。这个构造方法可以什么也不做,只需要在创建一个Person对象时调用即可。 例如,如果你的代码中需要创建一个空的Person对象,你就必须这样写: Person person = new Person(); 但是如果你的代码中需要创建一个有参数的Person对象,你就直接调用public Person(String ID, String name)构造方法就行了,例如: Person person = new Person("001", "张三"); 这就是为什么你需要在Person.java文件中定义一个public Person(){}构造方法的原因。它允许你在不传递参数的情况下创建一个Person对象。 最后,关于你在修改前遇到的“暗含的父类person未定义构造方法,需要定义一个明确的构造方法”错误,这是因为在你定义Student类时,它继承了Person类,但Person类中没有明确的无参构造方法,因此你需要手动创建一个public Person(){}构造方法来避免这个错误。 代码示例: // Person.java public class Person {
    String ID;
    String name;
    public Person(String ID, String name) {
        this.ID = ID;
        this.name = name;
    }
    
    // 无参构造方法
    public Person() {}
    

    } // Student.java public class Student extends Person { int grade; String major; public Student(String ID, String name, int grade, String major) { super(ID, name); this.grade = grade; this.major = major; } }

    评论

报告相同问题?

悬赏问题

  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?