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 }