//the process of object initializationclassFu {intnum=55;//1, num=0; the member variables in the object are initialized by default. 5, display initialization num=55{System.out.println ("Fu class Construction Code block");//6, constructing code block initialization} Fu () {//3 Fu class constructor function initialization Super();//4 Initialization of the object constructor function//5 display initialization, initializing member variables//6 Building code block initialization ClassesSystem.out.println ("Fu constructor" +num);//7, num=55;Show ();//8, covered run sub-class } voidShow () {System.out.println ("FU SHOW"); } Static{//-1, the static code block loads with the load of the class, and executes only once to load FuSystem.out.println ("Static FU"); }}classZiextendsFu {intnum=5;//1, num=0; the member variables in the object are initialized by default. 10, display initialization num=5//Building Code Blocks{System.out.println ("Zi Construction code block" +num);//11 Building Code block initialization num=5 } //constructor FunctionZi () {//2, constructor initialization Super();//3,//10, display initialization, initialize member variable//11 Building Code block initialization ClassesSystem.out.println ("Zi constructor" +num);//12,num=5; } voidShow () {//8System.out.println ("ZI SHOW" +num);//9,num=0; } Static{//0, Reload ZiSystem.out.println ("Static ZI"); }}classTestdemo { Public Static voidMain (string[] args) {//the process of object initialization NewZi (); }}
The result: Static FU
Static ZI
Fu Class Construction code block
Fu constructor Function 55
ZI SHOW 0
Zi Building code block 5
Zi Constructor 5
Summary: Static code block = = Non-static code block = = Construction method
Parent-Child Relationship: Static block of code, subclass static code block, and parent non-static block of code = = Parent class constructor = = Subclass non-static code block = sub-class constructor
Initialization of an object in Java