class Super {
int i=0;
Super(String s){
i=10;
}
}
public class Child extends Super{
int j=0;
Child(String s){
//super("a');
j=10;
}
public static void main(String[] args) {
Child c=new Child("s");
}
}
以上发生编译错误.
分析:当一个类中指定了一个构造器后,系统就不会再为其创建一个默认的无参构造器。另外,在执行子类构造器时,如果未指定调用的父类构造器时,系统会自动调用父类的无参构造器.如果指定调用了父类的构造器则不会再调用无参构造器.
当执行子类Child类的构造器时由于未调用父类的构造器,所以系统自动调用父类无参构造器,但是父类无参构造器得不到调用,因为父类中不存在此构造器.因此发生编译错误