错误:Implicit super constructor Father() is undefined for default constructor. Must define an explicit
初学Java的时候,在继承这边遇上一个错误:Implicit super constructor Father() is undefined for default constructor. Must define an explicit constructor。查阅资料找到一点思路,源代码如下:
package hank;
public class ExtendsDemo1 extends Father {
public String spectacle_frame;
//相同名称的变量子类会自动覆盖主类的变量
static String name = "小王";
//子类的无参构造器
//子类有没有无参构造器并不重要,可以不写
/*public ExtendsDemo1() {
}*/
//子类具有一个参数的构造器
public ExtendsDemo1(String spectacle_frame) {
this.spectacle_frame = spectacle_frame;
}
public static void main(String[] args) {
ExtendsDemo1 t1 = new ExtendsDemo1("Blue");
Father t2 = new Father();
//其他类的静态变量可以直接通过类名.静态变量名进行访问
System.out.println(t1.name);
System.out.println(t2);
}
}
//定义一个父类
class Father {
public static String name;
public int age;
public String eye;
public String height;
public String cutis;
public int i = 10;
//定义一个无参构造器
//无参构造器必须要有,否则不能编译成功
/*public Father() {
}*/
//定义一个有两个参数的构造器
//一般来说会有两个构造器,无参和有参,虽然有参构造器也是public类型,但是子类并不继承,Python中__init__初始化函数也不继承
/*public Father(String name, int age) {
this.name = name;
this.age = age;
}*/
//如果没有重写这个函数默认会输出类的地址好像是,重写之后输出的就是返回值
//此方法重写了Object类的toString方法
/*public String toString() {
String emp = name + " " + age;
return emp;
}*/
}
在这段代码中定义了一个父类和子类,两个类都分别定义了一个无参构造器和一个有参构造器。当父类没有定义无参构造器只是定义了一个有参构造器的时候,再去定义子类的有参构造器的时候就会报错。下面是一些解释:
还没有评论,来说两句吧...