父类跟子类的调用关系:先加载父类的静态变量,然后是子类的静态变量。当new一个子类时,加载父类的非静态变量,然后是父类的构造函数,再然后是子类的非静态变量和子类的构造函数

父类和子类的调用关系:先加载父类的静态变量,然后是子类的静态变量。当new一个子类时,加载父类的非静态变量,然后是父类的构造函数,再然后是子类的非静态变量和子类的构造函数
package com.cn.test9;
//父类和子类的调用关系
//先加载父类的静态变量,然后是子类的静态变量。当new一个子类时,加载父类的非静态变量,然后是父类的构造函数,再然后是子类的非静态变量和子类的构造函数
public class Beetle extends Insect {
	
	private int k=printInit("Beetle.k initialized");
	public Beetle(){
		System.out.println("k="+k);
		System.out.println("j="+j);
		System.out.println(k);
	}
	 
	private static int x2=printInit("Static bettle.x2 initialized");
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Bettle constructor()");
		Beetle b=new Beetle();
//		
//		aa demo=new aa();
//		 
//		System.out.println(demo.a);
		 
		 
		 
	 
	}

}
class aa{
	protected int a;
	int b;
	public int c;
	private int d;
}
class Insect{
	private int i=9;
	protected int j;
	int f=printInit("ninhao");
	Insect(){
		System.out.println("i="+i+",j="+j);
		j=39;
	}
	private static int x1=printInit("static Insect.x1 innitialized");
	static int printInit(String s){
		System.out.println(s);
		return 47;
	}
}