关于Java类的初始化的一些了解

/**
 * 
 */
package com.test;

/**
 * @author lihai 
 * @createdtime 2018-5-7 下午11:22:03
 * @类描述 类的初始化顺序
 * 
 * 对于静态变量、静态初始化块、变量、初始化块、构造器,
 * 它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。
 * 
 * 并不是父类完全初始化完毕后才进行子类的初始化,实际上子类的静态变量和静态初始
 * 化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。
 * 
 * 主程序类中的的静态变量先于静态代码块初始化,其后进入主函数类(程序入口处),其
 * 后根据静态函数的调用情况,才能选择性的初始化。
 * 
 * 
 */
public class ClassLoader {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		B b = new B();
	}

}
class A{
	//static int a=5;
	{
		System.out.println("3.A的初始化块");
	}
	A(){
		System.out.println("4.A的无参构造方法");
	}
	static{
		System.out.println("1.A的静态方法");
	}
	
}
class B extends A{
	
	//static int b=10;
	
	B(){
		System.out.println("6.B的无参构造方法");
	}
	
	static{
		System.out.println("2.B的静态方法");
	}
	
	{
		System.out.println("5.B的初始化块");
	}
}

猜你喜欢

转载自blog.csdn.net/lihai755/article/details/80233496