Bonjour,
c'est mon premier post sur ce forum alors tout d'abord, bonjour à tous, je me présente un minimum.
Je suis un complet novice qui suit les cours C#.
J'ai découvert la programmation il y a très peu, de l'ordre de quelques semaines et je m'y intéresse beaucoup. Pour l'instant les cours sont portés sur la création de quelques applications console, comme celle qui suit.
J'aime à rendre les exercices un peu plus durs mais aussi un peu plus personnels, au risque de me heurter, comme ici, à des choses qui me paraissent impossibles avec mes connaissances actuelles.
Après plusieurs heures de tâtonnements sur VS et de recherches sur le net, j'en viens à vous demander de l'aide.
Voici mon magnifique spaghetti (j'ai cru comprendre que ça ce disait comme ça ^^) le problème est résumé à l'intérieur puis en dessous.
On à donc, une classe mère "Animal" qui peut "Respirer(), et deux classes filles, Chien qui peut "Aboyer()" et Chat qui peut "Miauler().
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public class Animal { protected string prenom; static void Main(string[] args) { List<Animal> leZoo = new List<Animal>(); Chat Toulouse = new Chat("Toulouse"); leZoo.Add(Toulouse); Chat GrosRoux = new Chat("Gros Roux"); leZoo.Add(GrosRoux); Chat GrosNoir = new Chat("Gros Noir"); leZoo.Add(GrosNoir); Chat OG = new Chat("OG"); leZoo.Add(OG); Chat Eden = new Chat("Eden"); leZoo.Add(Eden); Chien Speed = new Chien("Speed"); leZoo.Add(Speed); foreach (Animal betes in leZoo) { betes.JouerAvecSesAmis(); } // Tout fonctionne et les animaux, tour à tour, appliquent la méthode JouerAvecSesAmis() } public void Respirer() { Console.WriteLine("Je suis " + prenom + " et je respire !"); } public void JouerAvecSesAmis() { Console.WriteLine("Je suis " + prenom + " et je m'amuse avec mes amis ! :) "); Respirer(); // L'ajout de la méthode Respirer() fonctionne très bien, vu que définie dans la classe mère Animal. // Je souhaite maintenant que chacun Aboie ou Miaule selon sa classe, seulement je ne peux pas, // car les méthodes Aboyer() et Miauler() n'existent pas ici. // Voilà la représentation logique que je me fais de mon idée (évidemment ça ne fonctionne pas) : // if (class = Chien) { Aboyer(); } // if (class = Chat) { Miauler); } // Il faudrait dans un premier temps que j'arrive ici à invoquer les deux méthodes non présente dans la classe Animal, puis que j'identifie la méthode à appliquer selon la classe de chaque animal. // Quelqu'un aurait l'amabilité de m'aiguiller un minimum ? :) } } public class Chien : Animal { public Chien(string PrenomDuChien) { prenom = PrenomDuChien; } public void Aboyer() { Console.WriteLine("Wouuuuaf Wouaf !!!" + Environment.NewLine); } } public class Chat : Animal { public Chat(string PrenomDuChat) { prenom = PrenomDuChat; } public void Miauler() { Console.WriteLine("Miaouuuuuu !" + Environment.NewLine); } }
Je souhaite que la méthode "JouerAvecSesAmis()" définie dans la classe mère "Animal" fasse "Respirer()" tout le monde, "Aboyer()" les Chiens et "Miauler" les Chats.
Je me doute que je ne suis pas assez clair ni que la construction de mon post est appropriée, donc n’hésitez pas à m'en faire part et avec vos conseils j'éditerai tout cela afin que ça soit plus compréhensible.
Merci




Répondre avec citation






Partager