title: Can a java subclass's private final field be initialized before the super constructor completes?
body: <p>I have a pair of classes looking like this;</p>
  
  <pre><code>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();
      }
  }
  </code></pre>
  
  <p>I assume the listener is null because I am effectively referencing it from <code>super()</code> and it hasn't instantiated yet.  However, I want to make it <code>final</code> because, well, it is.  Can I get this field (the listener) to initialize in time without putting it in the superclass (which won't be using the listener, ever)?</p>