|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
我在原问题上加了一个输出“7”;便于说明父类初始化的时间; public class Test2 extends Test1 { { System.out.print("1"); } Test2() { System.out.print("2"); } static { System.out.print("3"); } { System.out.print("4"); } public static void main(String[] args) { new Test2(); } } class Test1 { { System.out.print("7"); } Test1() { System.out.print("5"); } static { System.out.print("6"); } } 程序执行结果:6375142 调用顺序: 1、先对类进行加载:初始化静态变量,先初始化父类的静态变量,然后才是子类的静态变量; 2、对类进行初始化:在子类初始化以前,先进行父类的初始化,以及父类构造器的调用; 3、最后初始化子类,调用子类构造方式; 在中文TIJ中,曾经说道父类的构造方式在子类的构造方式之前执行,这样说虽然不是错误的,但是是不 完善的,应该是父类的构造方式在子类初始化之前就已经执行了。 返回类别: 教程 上一教程: 求同存异??Java模式系列谈之模板方式 下一教程: 提高Java程序内存效率 您可以阅读与"java日记(3) 类的初始化问题(CSDN一个问题有感)"相关的教程: · Java 类中类属性和对象属性的初始化顺序 · 关于JAVA import 的一个小问题 · 《Java编程思想》(第二版)第4章:初始化和清理 · 关于使用文本域(TEXTAREA)的一个问题 · 存储.PROPERTIES文件的一个问题 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |