Cast et conversion objet
axiome81
Messages postés
2
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
bonjour a tous
quelqu un pourrait m'éclairer sur la notion de cast dans le contexte suivant :
on a une classe mère (Animal)dont dérivent deux classes filles(Chien,Chat) , on crée une liste du type de la classe mère et on voudrait mettre les objet des deux classes filles dedans et les utiliser en tant qu objet de la classe mère ,ce qui implique une conversion implicite des objet classes filles vers objet classe base ,donc les objets de la liste sont logiquement des type Animal .
-dans la liste on veut pouvoir repérer parmi les objets Animal ceux qui ont anciennement été de la classe Chien(ceux converti a partir de la classe chien) , ce qui peut se faire en utilisant un if dans la liste :
ma question : comment on a pu tester dans le if si l'élément de la liste( qui est forcement un type Animal) est un type Chien ou a anciennement été un type Chien vu que l objet Chien a eté converti implicitement en intégrant la liste animaux ?
en d'autre terme qu est ce qui peut indiquer que c était un chien ?
merci (dsl pour le pavé ).
quelqu un pourrait m'éclairer sur la notion de cast dans le contexte suivant :
List<Animal> animaux = new List<Animal>();
Chien chien = new Chien();
Chat chat = new Chat();
animaux.Add(chien);
animaux.Add(chat);
foreach (Animal animal in animaux)
{
animal.Respirer();
}
on a une classe mère (Animal)dont dérivent deux classes filles(Chien,Chat) , on crée une liste du type de la classe mère et on voudrait mettre les objet des deux classes filles dedans et les utiliser en tant qu objet de la classe mère ,ce qui implique une conversion implicite des objet classes filles vers objet classe base ,donc les objets de la liste sont logiquement des type Animal .
-dans la liste on veut pouvoir repérer parmi les objets Animal ceux qui ont anciennement été de la classe Chien(ceux converti a partir de la classe chien) , ce qui peut se faire en utilisant un if dans la liste :
foreach (Animal animal in animaux)
{
if (animal is Chien)
{
Chien c = (Chien)animal;
c.Aboyer();
}
}
ma question : comment on a pu tester dans le if si l'élément de la liste( qui est forcement un type Animal) est un type Chien ou a anciennement été un type Chien vu que l objet Chien a eté converti implicitement en intégrant la liste animaux ?
en d'autre terme qu est ce qui peut indiquer que c était un chien ?
merci (dsl pour le pavé ).
A voir également:
- Cast et conversion objet
- Vlc cast to tv - Guide
- Installer chrome cast - Guide
- Vente objet occasion entre particulier - Guide
- Objet interdit en cabine ryanair - Guide
- Reinitialiser chrome cast - Guide
2 réponses
Bonjour,
Quand tu crée tes classes "chien" et "chat", tu peux préciser qu'elles ont pour modèle la classe "animal".
Ainsi, chaque classe "chien" et "chat" est une classe "animal" particulière.
C'est-à-dire que chaque classe "chien" et "chat" ont les propriétés et méthodes de la classe "animal", plus leurs propriétés et méthodes spécifiques.
Quand tu les ajoutes dans la liste "animeaux", elles conservent leur classe spécifique, et tu peux les différencier.
Bon courage.
Quand tu crée tes classes "chien" et "chat", tu peux préciser qu'elles ont pour modèle la classe "animal".
Ainsi, chaque classe "chien" et "chat" est une classe "animal" particulière.
C'est-à-dire que chaque classe "chien" et "chat" ont les propriétés et méthodes de la classe "animal", plus leurs propriétés et méthodes spécifiques.
Quand tu les ajoutes dans la liste "animeaux", elles conservent leur classe spécifique, et tu peux les différencier.
Bon courage.