关于Implicit super constructor Person() is undefined for default constructor. Must define an explicit constructorJava的总结
Implicit super constructor Person() is undefined for default constructor. Must define an explicit constructorJava(134217868)
写继承例题的一个小错误,记一下
父类:
//public Person(){
//
//}
public Person(String name, char sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
子类:
public class Student extends Person{ // 这里Student出现报错
// public Student(){
// }
public Student(String name, char sex, int age){
// 如果注释掉这个super(),则会默认一个super();
// 然而父类中不存在Person(),则会报错
super(name, sex, age); // 调用父类的构造函数来给student继承父类的属性来赋值
this.name = name;
this.sex = sex;
this.age = age;
}
}
原因 : 隐式超级构造函数 Person() 未为默认构造函数定义。必须定义显式构造函数Java(134217868)
就是无参的构造函数person()忘记定义了,以后注意,就这样吧
总结:
子类在继承父类后,它定义的构造方法会默认加入一个super()
(在没有写出的情况下),当编辑器在父类中找不到父类定义的相同的构造方法时,就会报错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构