Welche laufen zuerst? Standardwerte für Instanzvariablen oder Superkonstruktoren?

Nach dem SCJP6 (Seite 507) habe ich festgestellt, dass Instanzvariablen Standardwerte zugewiesen werden, bevor die Superklassenkonstruktoren abgeschlossen sind. Ich habe ein Beispiel im Debugg-Modus versucht, aber festgestellt, dass der Superkontraktor ausgeführt wird, bevor Instanzvariablen ihre Standardwerte erhalten erkläre mir das?

Beispiel, das ich für den Fall verwendet habe, dass jemand es versuchen möchte:

package courseExercise;

class test {
    test() {
        System.out.println("Super Constructor run");
    }
}

public class Init extends test {

    private Integer i = 6;
    private int j = 8;

    Init(int x) {
        super();
        System.out.println("1-arg const");
    }

    Init() {
        System.out.println("no-arg const");
    }

    static {
        System.out.println("1st static init");
    }
    public static int d = 10;
    {
        System.out.println("1st instance init");
    }
    {
        System.out.println("2nd instance init");
    }
    static {
        System.out.println("2nd static init");
    }

    public static void main(String[] args) {
        new Init();
        new Init(7);
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage