首先说结论吧
静态成员变量->父类静态代码块->子类静态成员变量->子类静态代码块->父类成员变量->父类非静态代码快->父类构造器->子类成员变量->子类非静态代码块->子类构造器
具体例子可以看如下示例
public class TestFuZi { public static void main(String[] args) { Zi z=new Zi(); } } class Fu{ private static int i=getNum("(1)i"); private int j=getNum("(2)j"); static { print("(3)父类静态代码块"); } { print("父类非静态代码块,又称为构造代码块"); } Fu(){ print("(5)父类构造代码块"); } public static void print(String str){ System.out.println(str+"->"+i); } public static int getNum(String str){ print(str); return ++i; } } class Zi extends Fu{ private static int k=getNum("(6)k"); private int h=getNum("(7)h"); static { print("(8)子类静态代码块"); } { print("(9)子类非静态代码块,又称为构造代码块"); } Zi(){ print("(10)子类构造器"); } public static int getNum(String str){ print(str); return ++k; } }
该程序的输出结果是:
标签:初始化,静态,子类,代码,static,print,父类 From: https://www.cnblogs.com/bestwei/p/16651238.html