class Base{ Base(){ System.out.println("Base"); } } public class Checket extends Base{ Checket(){ System.out.println("Checket");
super(); } public static void main(String[] args){ Checket c = new Checket(); } }
上面代码中Checket构造函数中引用了super();但是super();不是放在构造函数的首位,如果没有放在构造函数第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法,那么以前所做的修改就都回到以前,也就是恢复到父类的构造器方法了,所以不能通过编译,应改为:
public class Checket extends Base{ Checket(){ super(); System.out.println("Checket"); }