9.3.2 继承中构造器的初始化
创建类对象时,系统会调用构造器对其所属成员进行初始化,那么针对那些继承自父类的成员又该如何初始化呢?
实际上,在创建子类对象时,先执行父类的构造器,然后执行子类的构造器,最后完成对象的创建。正如先存在父母,然后才有子女一样。在创建子类对象时,会先调用父类构造器,初始化继承自父类的成员,随后,调用子类构造器初始化子类的成员。
【实例9.2】举个有关构造器的例子,代码如下所示。
01 class Person //父类
02 {
03 int a;
04 Person() //父类的构造器
05 {
06 a=10;
07 System.out.println("这个是父类的构造器");
08 }
09 }
10 public class men extends Person //子类
11 {
12 int b;
13 men() //子类的构造器
14 {
15 //super() //隐藏的
16 b=20;
17 System.out.println("这个是子类的构造器");
18 }
19 public static void main(String[]args)
20 {
21 men m=new men();
22 System.out.println(m.a+""+m.b);
23 }
24 }
【代码说明】在创建“men”子类时,会先调用父类的构造器,正如运行的结果一样,先显示“这个是父类的构造器”,然后显示“这个是子类的构造器”。
【运行效果】
这个是父类的构造器
这个是子类的构造器
10 20