本帖最后由 段浩亮 于 2012-3-14 20:44 编辑
过程应该是这样的:Test2中有主函数先加载test2,因为test2继承test1所以加载test2之前要先加载test1这是第一步:把test1 test2加载进内存,类一加载进内存就会执行类中的静态代码块输出73 第二步执行test2中的静态主函数当读到new Test2();时就会调用test2的构造函数,因为子类构造函数第一行有默认的super();语句。所以会先执行test1中的构造函数,而代码块又优先于构造函数执行所以先输出6再输出5,然后再执行test2中的代码块,输出1,4最后执行构造函数test2中的输出语句输出2. 希望你能够明白 |