herencia compuesta: ¿cómo asignar un campo final en el constructor de la subclase que depende de 'este' valor (referencia hacia atrás)?

Yo uso clases compuestas para agrupar funcionalidades.
Pero, la clase A (con compuesto A1), fue heredada por B (con compuesto B1), y un comportamiento existente en A1 se adaptará en B1, pero el a1 final debe ser una instancia de B1 para que esto funcione.

Obs .: tengoformas para asegurarse de que la instanciación compuesta ocurra correctamente (solo por su socio compuesto).

No se puede asignar un objeto B1 al campo final a1:

class finalFieldTestFails{
    class A1{
      A1(A a){}
    }

    class A{
      protected final A1 a1;
      A(){
        this.a1 = new A1(this);
      }

      A(A1 a1){
        this.a1 = a1;
      }
    }

    class B1 extends A1{
      B1(B b){
        super(b);
      }
    }

    class B extends A{
        //B(){ super.a1=new B1(this); } //FAIL: cant change final value
        //B(){super(new B1(this));} //FAIL: cant use 'this' or 'super'
    }
}

PD .: la respuesta no deberá incluir trucos de seguridad de reflexión si es posible.

Respuestas a la pregunta(2)

Su respuesta a la pregunta