java代码在编译运行时,(1)静态的部分先进行,(2)非静态的部分,(3)然后是构造器部分,
父类优先于子类。
1:静态属性,
2:静态块代码
3:非静态成员属性
4:非静态块代码
5:构造体
6:父类优先于子类!
测试代码:
public class TestJVM extends TestJVMParent {
static int age;
String name;
public TestJVM(String name,int age){
super(name,age);
this.name = name;
this.age = age;
System.out.println("TestJvm () : name = "+name+" age = "+age);
}
static{
System.out.println(" static : age = "+age);
}
{
System.out.println(" name "+name);
}
public static void main(String[] arg){
TestJVM t = new TestJVM("juni",23);
}
}
-------------------------
public class TestJVMParent {
static int age;
String name;
public TestJVMParent(String name,int age){
this.name = name;
this.age = age;
System.out.println("TestJvmParent () : name = "+name+" age = "+age);
}
static{
System.out.println(" static parent : age = "+age);
}
{
System.out.println(" name parent "+name);
}
}
-------------------------------------
static parent : age = 0 //父类静态
static : age = 0 // 子类静态
name parent null // 父类非静态
TestJvmParent () : name = juni age = 23 // 父类构造器
name null // 子类非静态
TestJvm () : name = juni age = 23 //子类构造器