继承中构造方法的访问特点

继承中构造方法的访问特点

继承关系中,父子类构造方法的访问特点:

子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。

子类构造可以通过super关键字来调用父类重载构造。

super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。

总结:

子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。

1
2
3
4
5
6
7
public class Demo01Constructor {

public static void main(String[] args) {
Zi zi = new Zi();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
package cn.itcast.day09.demo07;

public class Fu {

public Fu() {
System.out.println("父类无参构造");
}

public Fu(int num) {
System.out.println("父类有参构造!");
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package cn.itcast.day09.demo07;

public class Zi extends Fu {

public Zi() {
super(); // 在调用父类无参构造方法
// super(20); // 在调用父类重载的构造方法
System.out.println("子类构造方法!");
}

public void method() {
// super(); // 错误写法!只有子类构造方法,才能调用父类构造方法。
}

}