父类没有默认的构造函数,子类会编译通不过
例子 父类
public class A {
public A(String s){
System.out.println("father");
}
}
子类 错误代码
public class B extends A{
public B() {
system.out.println("son");
}
}
子类正确代码
public class B extends A{
public B(String s) {
super(s);
}
}
如果父类没有写构造方法或者父类的构造方法跟默认的一样
那么子类不写构造方法就会默认调用父类的构造方法,
如果父类是默认的构造方法
子类要写构造方法 那么必须先super() 默认的你可以不写也 编译器会给你默认加上
但如果父类重载了构造方法 比如 A(String s)
那么子类就必须写 B(String s){ super(s); }