子类继承了父类,若父类的构造方法没有重载那么,子类的构造方法也不需要通过super调用父类构造方法。一个类中如果构造方法重写了并且带了参数,那么这个类的原来系统默认的无参构造方法便消失。由此,若一个父类中只有一个带参数的构造方法,那么在写其子类的构造方法时必须先通过super调用父类的构造方法才能完成子类的构造方法而且super只能写在子类构造方法体内的第一行。
父类:
public class Gouzao {
public Gouzao(int i) { //重载构造方法并使其带有参数
System.out.println(i);
}
}
子类:
public class Gouzao2 extends Gouzao{
public Gouzao2() {
super(10);必须写在第一行!!!!!
}
public static void main(String[] args) {
Gouzao2 G=new Gouzao2();
}
}
Console输出效果:
如果父类有无参构造方法,那么在写子类的构造方法时可以不用super调用,其实就是调用父类的无参构造方法,总的来说就是子类的构造方法创建时要调用父类的构造方法。