第一次的代码中, Zi z = new Zi();时,先调用子类带参数构造,执行结果fu...9;zi run;
第二行中 Zi z1 = new Zi(3)时,先调用父类空参构造,打印fu...run;zi....3;
最后调用z.num时,由于z没有执行过父类空参构造,所以num为默认值0.
第二个代码中,先执行 Zi z = new Zi();执行super(9),这时,fun...9,并把num赋值为78,再打印zi run;
第二行中 Zi z1 = new Zi(3)时,先调用父类空参构造,打印fu...run;zi....3;
最后打印z.num时,num已为78,所以结果为78.
|