This document describes the execution sequence of classes in Java.
The sequence should be as follows: parent class Static> subclass static> parent class default {}-> parent class constructor-> subclass default {}-> subclass Constructor
The print order of the above example should be as follows:
Parent static block parent class Static
Child static block subclass static
Parent block parent class default {}
Parent constructor parent class constructor
Child block subclass default {}
Child constructor subclass constructor
Class Parent {
Static String name = "hello ";
Static {
System. out. println ("parent static block ");
}
{
System. out. println ("parent block ");
}
Public Parent (){
System. out. println ("parent constructor ");
}
}
Class Child extends Parent {
Static String childName = "hello ";
Static {
System. out. println ("child static block ");
}
{
System. out. println ("child block ");
}
Public Child (){
System. out. println ("child constructor ");
}
}
Public class StaticIniBlockOrderTest {
Public static void main (String [] args ){
New Child (); // Statement (*)
}
}