Kann das private final-Feld einer Java-Unterklasse initialisiert werden, bevor der Super-Konstruktor abgeschlossen ist?

Ich habe zwei Klassen, die so aussehen;

public abstract class Class1 {

//...

    public Class1() {
        //...
        function2();
        //...
    }

    protected abstract void function2();

}

public class Class2 implements Class1 {

    private final OnSomethingListener mOnSomethingListener = new OnSomethingListener() {
        @Override
        onSomething() {
            doThatOtherThing();
        }
    }

    protected void function2() {
        //uses mOnSomethingListener
        //however mOnSomethingListener is null when this function is called from super()
        //...
    }

    public Class2() {
        super();
    }
}

Ich gehe davon aus, dass der Listener null ist, da ich effektiv darauf verweisesuper() und es hat noch nicht instanziiert. Ich möchte es jedoch schaffenfinal weil es so ist. Kann ich dieses Feld (den Listener) rechtzeitig initialisieren lassen, ohne es der Superklasse zuzuordnen (die den Listener niemals verwendet)?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage