参考了点击打开链接这篇文章,对另一只程序进行分析
AssistClass.java
package com.yehui.test;
public class AssistClass {
int i = 1;
public int getNum() {
System.out.println("not static field init getNum");
return 4;
}
public int getNum2() {
System.out.println("static field init getNum2");
return 5;
}
public int getNum3() {
System.out.println("father static field init");
return 5;
}
public int getNum4() {
System.out.println("father not static field init");
return 5;
}
}
fatherClass.java
public class fatherClass{
static int fatherVar=new AssistClass().getNum3();
static{
System.out.println("father static block");
}
{
System.out.println("father not static block");
}
int fatherVar2=new AssistClass().getNum4();
}
StaticTest.java
public class StaticTest extends fatherClass {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("------------------");
System.out.println("--StaticTest->main");
StaticTest st = new StaticTest();
System.out.println("------------------");
}
public StaticTest() {
System.out.println("StaticTest constructor");
}
publ