关于JAVA编程思想里面的一段代码
是关于第6章继承的问题?
class Insect{
	int i = 9;
	int j;
	Insect() {
		// TODO Auto-generated constructor stub
		prt("i="+i+".j="+j);
	}
	
	static int x1 = prt("static Insect.x1 initialized");
	
	static int prt(String s){
		System.out.println(s);
		return 47;
	}
}
public class Test02 extends Insect {
	int k = prt("Beetle.k initialized");
	
	Test02() {
		// TODO Auto-generated constructor stub
		prt("k="+k);
		prt("j="+j);
	}
	
	static int x2 = prt("static Beetle.x2 initialized");
	
	static int prt(String s){
		System.out.println(s);
		return 47;
	} 
	public static void main(String[] args) {
		prt("Bookle constructor");
		Test02 t = new Test02();
	}
}
按照我的理解来说先执行main方法里面的打印出Bookle constructor,然后在执行子类里面继承的父类方法,但它是先从父类的
static int prt(String s){
		System.out.println(s);
		return 47;
	}
先执行,而且我也没有入参s,它就已经获取到static int x2 = prt("static Beetle.x2 initialized");这是为什么?
它出出来的结果是
static Insect.x1 initialized
static Beetle.x2 initialized
Bookle constructor
i=9.j=0
Beetle.k initialized
k=47
j=0
我完全无法理解。。。求解高手来解答一下
              
------解决方案--------------------lz看看静态方法以及各方法的先后顺序,静态方法块在运行时就执行了,不用放在main中