父类没有无参构造方法
public class Father {
private String name;
public Father(String name) {
this.name = name;
}
}
-----------------------------------
public class Son extends Father {
private String sex;
public Son() {
super("aa");
System.out.println("aa");
}
}
如果子类中没有显式地调用父类的构造方法,编译器会自动在子类的构造方法中插入一个隐式的 super() 调用,
但是如果父类中没有无参构造方法,这个隐式的调用会导致编译错误。
结论:子类必须在构造方法中的第一行显示调用父类构造方法。
不写或不在第一行写都会编译报错。
错误示例:
image.png
网友评论