首页 > 编程语言 >关于Implicit super constructor Person() is undefined for default constructor. Must define an explicit

关于Implicit super constructor Person() is undefined for default constructor. Must define an explicit

时间:2022-10-30 15:56:09浏览次数:38  
标签:constructorJava undefined age sex Person constructor 父类 super name

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

标签:constructorJava,undefined,age,sex,Person,constructor,父类,super,name
From: https://www.cnblogs.com/LruiBlog/p/16841445.html

相关文章