En C#, j'ai trois classes: Personne, Chat et Chien.Comment autoriser la classe Class être de types multiples/flexibles dans C#?
Les deux classes Cat et Dog ont la méthode Eat().
Je souhaite que la classe Person possède une propriété 'Pet'. Je veux être en mesure d'appeler la méthode Eat du chat et du chien via la personne via quelque chose comme Person.Pet.Eat() mais je ne peux pas parce que la propriété Pet doit être de type Cat ou Chien.
Actuellement je contourne ceci avec deux propriétés dans la classe Person: PetDog et PetCat.
C'est correct pour l'instant, mais si je voulais 100 types d'animaux différents comme animaux de compagnie alors je ne veux pas vraiment avoir 100 propriétés Pet différentes dans la classe Person.
Y a-t-il un moyen de contourner cette utilisation des interfaces ou de l'héritage? Existe-t-il un moyen pour que Pet puisse être de type Object mais accéder aux propriétés de la classe d'animal qui lui est affectée?
Est-ce que ce sont les devoirs? –
Ça sent le travail à moi. Il n'y a rien de mal avec les devoirs, mais ils devraient être signalés comme tels. Ajouter un tag "devoirs" à vos questions si c'est un devoir. –
Je n'aime pas ce Person.Pet.Eat(), lire dans le mauvais sens, je pourrais avoir peur de ce que la personne va faire à l'animal de compagnie .. Que diriez-vous de Person.FeedPet() à la place. Pour l'amour des animaux .. –