2 omeikawa oMeiKaWa 于 2016.03.17 23:02 提问

新手菜鸟,想问一下哪位大神能解释一下类的运行顺序?

附图!
图片说明

1个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.17 23:11
已采纳
 初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。

 变量初始化(赋值)和初始化块的执行与相关语句在源码中的放置顺序一致

 这里因为static Test t = new Test()在前,所以先执行new Test()赋值语句,再初始化static变量块
 执行完new Test()后,a,b的值都是1,接着往下初始化static b=0赋值,b的值变成0,因为a没有重新赋值,所以值不变,还是1
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!