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