class SuperClass{
public SuperClass()
{
System.out.println("父类构造器");
}
{
System.out.println("父类代码块");
}
static
{
System.out.println("父类静态代码块");
}
public static String fieldSuperA = printStaticField();
public String fieldSuperB = printCommonField();
static String printStaticField()
{
System.out.println("父类静态成员变量A初始化");
return "";
}
String printCommonField()
{
System.out.println("父类实例变量B初始化");
return "";
}
}
class SubClass extends SuperClass{
public static String fieldSubA = printStaticField();
public String fieldSubB = printCommonField();
public SubClass(){
System.out.println("子类的构造器");
}
{
System.out.println("子类代码块");
}
static{
System.out.println("子类静态代码块");
}
static String printStaticField(){
System.out.println("子类静态成员变量A初始化");
return "";
}
String printCommonField(){
System.out.println("子类实例变量B初始化");
return "";
}
}
public class MemeberInitializationTest {
public static void main(String[] args) {
new SubClass();
}
}
运行结果如下:
想知道为什么会出现这种情况。