Exemplo n.º 1
0
 public Client0(IMere poMere) //<<<< Param. de type plus général que le constructeur de la classe enfant Client0
 {
     Console.WriteLine("\n\n-------- Dans constructeur de Client0 --------\n");
     poMere.methode(); //Lorsque poMere est AUSSI de type IEnfant, alors par POLYMORPHISME (car override methode() dans classe Enfant),
                       //c'est bien methode() de Enfant qui sera appelée (tout comme dans le cas d'un new Client0(new Enfant())
                       //REMARQUE: si dans Enfant j'avais utilisé le mot-clef new au lieu de override, eh bien le résultat aurait été le même !?
     //poMere.methodeEnfant(); //INTERDIT bien sûr !! ok
     Console.WriteLine("\n-------- FIN constructeur de Client0 !--------\n\n\n");
 }
Exemplo n.º 2
0
 private IMere _oMere;        //{IMere}
 public Client0(IMere poMere) //<<<< Param. de type plus général que le constructeur de la classe enfant Client0
 {
     this._oMere = poMere;
     Console.WriteLine("\n\n-------- Dans constructeur de Client0 --------\n");
     this._oMere.methode();     //Pourquoi ????? est-ce methode() de IEnfant qui est appelée !?? Lorsque poMere reçu est de type réel IEnfant !??
     this._getMere().methode(); //Même question !!!!! puisqu'à ce stade this._oEnfant dans Client1 n'est même pas encore défini !!!????
     //this._oMere.methodeEnfant(); //INTERDIT bien sûr !! ok
     Console.WriteLine("n-------- FIN constructeur de Client0 !--------\n\n\n");
 }