WEB开发网
开发学院WEB开发Jsp java日记(3) 类的初始化问题(CSDN一个问题有感)... 阅读

java日记(3) 类的初始化问题(CSDN一个问题有感)

 2008-01-05 19:28:06 来源:WEB开发网   
核心提示:我在原问题上加了一个输出“7”;便于说明父类初始化的时间;public class Test2 extends Test1 { { System.out.PRint("1"); } Test2() { System.out.print("2");

我在原问题上加了一个输出“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中,曾经说道父类的构造方法在子类的构造方法之前执行,这样说虽然不是错误的,但是是不

完善的,应该是父类的构造方法在子类初始化之前就已经执行了。


Tags:java 日记 初始化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接