Chaînage des constructeurs

L'exercice consiste seulement à deviner la sortie du programme ci-dessous (la méthode main de la classe EssaiConstructeurs), qu'on peut aussi trouver ici
class A {
    A() {
	System.out.println("bonjour de A");
    }
}
	
class B extends A {
    boolean verite;
    int valeur;
    
    B() {	
     	System.out.println("constructeur B()");
    }

    B(int valeur) {	
	this();
	this.valeur = valeur;
     	System.out.println("constructeur B(int)");
    }

   B(boolean verite) {	
	this.verite = verite;
     	System.out.println("constructeur B(boolean)");
    }

    B(boolean verite, int valeur) {
	this(valeur);
	this.verite = verite;	
     	System.out.println("constructeur B(boolean, int)");
    }

    public String toString() {
	return "B : (" + verite + ", " + valeur +")\n";
    }
}

class EssaiConstructeurs {    
    public static void main(String[] argv) {
      	B b = new B(true);
	System.out.println(b);
      	b = new B(false, 5);
	System.out.println(b);
    }
}
Pour connaître la réponse, il suffit d'essayer, mais elle est aussi ici.

© Charon Irène, Télécom ParisTech - Paris 2011