1 public class Fu {
2
3 public Fu() {
4 System.out.println("父类无参构造");
5 }
6
7 public Fu(int num) {
8 System.out.println("父类有参构造!");
9 }
10
11 }
1 public class Zi extends Fu {
2
3 public Zi() {
4 super(); // 在调用父类无参构造方法
5 // super(20); // 在调用父类重载的构造方法
6 System.out.println("子类构造方法!");
7 }
8
9 public void method() {
10 // super(); // 错误写法!只有子类构造方法,才能调用父类构造方法。
11 }
12
13 }
/*
继承关系中,父子类构造方法的访问特点:
1. 子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。
2. 子类构造可以通过super关键字来调用父类重载构造。
3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。
总结:
子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。
*/
public class Demo01Constructor {
public static void main(String[] args) {
Zi zi = new Zi();
}
}