JavaSE-10.2.3【继承中构造方法的访问特点】

 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 }

 

posted @ 2021-05-27 20:16  yub4by  阅读(33)  评论(0编辑  收藏  举报