1 package day1.yppah02;
2
3 /*
4 2.3 继承中构造方法的访问特点
5
6 注意:
7 子类中所有的构造方法默认都会访问父类中无参的构造方法
8 子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化,
9 原因在于,每一个子类构造方法的第一条语句默认都是:super()
10 问题:
11 如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?
12 1. 通过使用super关键字去显示的调用父类的带参构造方法
13 2. 在父类中自己提供一个无参构造方法
14 推荐方案:
15 自己给出无参构造方法
16 */
17
18 public class Demo3 {
19 public static void main(String[] args) {
20 Zi3 z = new Zi3();
21
22 Zi3 z2 = new Zi3(20);
23 }
24 }
1 package day1.yppah02;
2
3 /*public class Fu3 {
4 public Fu3(){
5 System.out.println("Fu3无参构造");
6 }
7
8 public Fu3(int age){
9 System.out.println("Fu3有参构造");
10 }
11 }*/
12
13 public class Fu3 {
14 // public Fu3(){
15 // System.out.println("Fu3无参构造");
16 // }
17
18 public Fu3(int age){
19 System.out.println("Fu3有参构造");
20 }
21 }
1 package day1.yppah02;
2
3 /*public class Zi3 extends Fu3{
4 public Zi3(){
5 //super(); // 写不写效果一样,一般不写
6 System.out.println("Zi3无参构造");
7 }
8
9 public Zi3(int age){
10 //super(); // 写不写效果一样
11 System.out.println("Zi3有参构造");
12 }
13 }*/
14
15 public class Zi3 extends Fu3{
16 public Zi3(){
17 super(20);
18 System.out.println("Zi3无参构造");
19 }
20
21 public Zi3(int age){
22 super(20);
23 System.out.println("Zi3有参构造");
24 }
25 }