构造器的执行顺序
上一篇 / 下一篇 2012-05-18 08:44:22 / 个人分类:Java
1、在没有静态块的情况下,子类的对象创建时,父类的无参构造器-->子类的构造器(产生对象的构造器,如果是无参则执行的是无参构造器,如果执行的是有参则执行的有参构造器)。现在的父类中只有两个构造器:
|
① 子类使用无参构造器创建对象:
:B,A7cwl4w ]7OBJ0L;N9n#G@n]6~0 在SonDemo 的main方法中加入创建对象的代码:
k'[$m_d#GPC0
|
2W'Wo)d`a0 我是父类的无参构造器
O,W#O0T3Ci0`8{#itLG0 我是--子类--的无参构造器
7\JjLET(`5q,\051Testing软件测试网 A8?Q fI2Q"Fi&Y② 子类使用有参构造器创建对象:51Testing软件测试网Z)Gz x+typ{K
j5Q6igecDJ!CZ3_K0 SonDemo的main方法中加入
L0gk7[^U-S)L0SonDemo son = new SonDemo("than you ma"); |
4|3v ju&h]+v0 那么控制台打印的结果是:
8b T] v lb051Testing软件测试网MaVa.P;B我是父类的无参构造器51Testing软件测试网(] ph7H~
51Testing软件测试网MO$l;tbucW6f我是子类的有参构造器,参数是than you ma
aX9Y(S?4_#Ot3E0,ISEg"z0 也就是说在子类调用无参构造器创建对象的时候,在执行它自己的有参构造器之前首先执行父类的无参构造器。51Testing软件测试网@6P6n|,A
{x+kTZ~"V0 ③ 在子类中创建父类的对象,使用无参51Testing软件测试网,^&iY)h`d
|
c+~!T{o8gi0 SonDemo的main方法中加入
#a7P7}0B*~z0d{&o)\\#X$P OW0 我是父类的无参构造器51Testing软件测试网~#A7qa%V_E
51Testing软件测试网%n W&W]"r我是--子类--的无参构造器51Testing软件测试网HV,En n(l/s|
51Testing软件测试网R4[d*RIa我是父类的无参构造器51Testing软件测试网6[DnEW W E
51Testing软件测试网z;S:z-MyR d^调用了父类的无参构造器,有参的创建对象调用的是有参构造器。