Bonjour,
soit la liste d'animaux suivante
Soit la classe Chien avec sa méthode Aboyer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 List<Animal> animaux = new List<Animal>(); Animal chien_1 = new Chien(); Animal chat_1 = new Chat(); Animal animal_1 = new Animal(); Chien chien_2 = new Chien();
Si j'écris ce code pour faire aboyer les chiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Chien : Animal { public Chien(): base() { } public Chien(string prenomDuChien):base(prenomDuChien) { }//fin de constructeur*/ public void Aboyer() { Console.WriteLine("Wouaf !"); }//fin de méthode Aboyer*/ }//fin de classe
Est que le cast en Chien s'executera aussi pour l'instance chien_2 alors qu'il n'est pas nécessaire, ou est ce que ce dernier cast ne sera pas réalisé car chien_2 est déjà un Chien qui peut Aboyer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 foreach (Animal a in animaux) { if (a is Chien) { ((Chien)a).Aboyer(); }//fin de if }//fin de foreach
Merci beaucoup de votre réponse
Bien cordialement.
new_wave
Partager