一只倔强的蜗牛 2015-07-13 02:14 采纳率: 100%
浏览 1317
已采纳

类的初始化过程不懂,求大神解释

class Fu
{
Fu()
{
super();
show();
return;
}

void show()
{
    System.out.println("fu show");
}

}
class Zi extends Fu
{
int num = 8;
Zi()
{
super();
System.out.println("zi cons run...."+num);
return;
}
void show()
{
System.out.println("zi show..."+num);
}
}
class ExtendsDemo5
{
public static void main(String[] args)
{
Zi z = new Zi();
z.show();
}
}

图片说明

  • 写回答

4条回答 默认 最新

  • JonsonJiao 2015-07-13 02:56
    关注

    总的来说,你的子类复写了父类的方法,三个方面:
    1、子类初始化会先进行父类初始化,有没有super()都是一样的;
    2、子类复写父类方法,在实例化子类时,父类调用的show()其实调用的是子类的;
    3、num一开始为0,是因为子类加载时先进行变量的内存分配,num一开始就是0,然后调用完父类构造函数后会进行变量的初始化,num=8,然后再输出就是8了。

    可以看看这个解释http://coolshell.cn/articles/1106.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效