/* * public new Int32 method2c(Int32 n, Int64 z) //Ici il s'agit d'une SURCHARGE(type/nombre de params différant) : * { //donc l'OPERATOR new est INUTILE. Mais passe à la compil. . * string localeVar = base.method2c(n) + " puis CChild - method2c"; //On peut quand même appeler la méthode parente. * Console.WriteLine(localeVar); * return (10 * n); * } */ /* * public new string method2d(Int32 n, Int64 z) //Ici il s'agit d'une SURCHARGE(type/nombre de params différant) : * { //donc l'OPERATOR new est INUTILE. Mais passe à la compil. . * string localeVar = base.method2d(n) + " puis CChild - method2d"; //On peut quand même appeler la méthode parente. * return (localeVar); * } */ public string method2e(Chien chien) //SURCHARGE de la méthode parente (type de param. différant bien qu'étant un type enfant). { string localeVar = base.method2e(chien); //On peut bien sûr appeler la méthode parente. Console.WriteLine(localeVar); return("CChild - method2e / " + chien.obtenirEspece() + "/" + chien.obtenirPrenom()); }
//Surcharge d'une méthode parente virtual : public void method1d(Chien chien) //le mot-clef OVERRIDE étant ici INTERDIT, car la signature n'est PAS { // Exactement la même que celle parente. // IL S'AGIRA donc ici en fait D'UNE SIMPLE SURCHARGE (params différant) !!! //Peu importe le type de retour (d'ailleurs différent ici). string localeVar = base.method1d(chien); //On peut bien sûr appeler la méthode parente. Console.WriteLine(localeVar); Console.WriteLine("CChild - method1d / " + chien.obtenirEspece() + "/" + chien.obtenirPrenom()); }