/home/wpollock1/public_html/AJava/InitTraceDemo.java

// Demo showing the order of initialization steps.
// Written 2/2021 by Wayne Pollock, Tampa Florida USA

class Parent {
    public Parent () {
        System.out.println("In Parent's constructor");
    }

    static {
        System.out.println("In Parent's static init block.");
    }

    {
        System.out.println("In Parent's non-static init block.");
    }
}

public class InitTraceDemo extends Parent {
    public static void main ( String[] args ) {
        System.out.println("In main, about to create an InitTraceDemo:");
        InitTraceDemo f = new InitTraceDemo();
        System.out.println("In main, Finished creating an InitTraceDemo.");
    }

    static {
        System.out.println("In InitTraceDemo's static init block.");
    }

    {
        System.out.println("In InitTraceDemo's non-static init block.");
    }

    public InitTraceDemo () {
        System.out.println("In InitTraceDemo's constructor");
    }
}