Salve a tutti,ho il seguente codice:

codice:
class A{
	public A(){
		System.out.println("A()");
	}
}

class B{
	public B(){
		System.out.println("B()");
	}
}


class C extends A{
	public C(){
		System.out.println("C()");
	}
	B b =new B();
}


class TestC{
	public static void main(String[] args){
		C c= new C();
	}
Perchè l'output è il seguente?
A()
B()
C()
non dovrebbe essere
A()
C()
B()
Mi spiego meglio quando creo l'oggetto c in main chiamo il suo costruttore il compilatore si rende conto che la classe è derivate da A e quindi chiama il costruttore A().Perchè poi chiama B() e solo successivamente conclude il costruttore C()?Non so se sono stato chiaro.Saluti.