public class Husband extends persona{
/** Second execution
Public Husband () {
Super ("one");
System.out.println ("both");
}
}
public class Wife extends Persona {
/** Third Execution
Public Wife () {
Super ("four");
}
/** Fourth execution
Public Wife (String name) {
Super (name);
System.out.println ("three");
}
}
public class Persona {
private String name;
Private String sex;
Private Integer age;
Public Persona (String name) {
System.out.println ("My name is:" + name);
}
/** omitted Seter/getter
public class Test {
/**
* Static blocks are executed only once/first
*/
static {
System.out.println ("Here We Go");
}
/** Fifth execution
Public Test () {
System.out.println ("This just a Test");
}
public static void Main (string[] args) {
Husband husband=new Husband ();
Wife wife=new Wife ();
Wife=new Wife ("Five");
Test test=new test ();
Test.say ();
}
/** Final Execution
public static void Say () {
System.out.println ("Say Something");
}
}
Output Result:
Here We Go
My name is: one
Both
My name is: four.
My name is: Five
Three
This just a test
Say Something
constructors, static code blocks, static method execution order for Java classes