关于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()(在没有写出的情况下),当编辑器在父类中找不到父类定义的相同的构造方法时,就会报错。

posted @   Dezenady  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示