- 子类构造方法中有一个隐含的“super()”调用,所以子类对象在创建的时候,会优先调用父类无参构造方法,再调用本类的构造方法,而且只有子类的构造方法才能调用父类的构造方法,子类其他方法不能调用的。
父类:
public class Fu {
public Fu() {
System.out.println("父类构造方法");
}
}
子类:
public class Zi extends Fu {
public Zi() {
// super(); 默认调用父类的构造方法
System.out.println("子类构造方法");
}
}
调用:
public class JiCheng {
public static void main(String[] args) {
Zi zi = new Zi();
}
}
执行结果:
- 子类构造方法可以通过super关键字来调用父类的重载构造
改正后
- super的父类构造方法的调用,必须是子类构造方法中的第一个语句,不能一个子类构造方法调用多个父类构造方法;而且父类的构造方法在子类中必须被调用,不写则默认会有super()进行调用。