Premium Posté(e) le 16 avril 2006 Partager Posté(e) le 16 avril 2006 Bonjour, j'ai un souci pour créer mes classes dans l'exercice suivant . J'ai crée mes classes de cette manière Animal(classe abstraite) Mammifere(interface) Serpent(interface) Singe hérite de Animal et implémente Mammifere Felin hérite de Animal et implémente Mammifere Boa hérite de Animal et implémente Mammifere Chimpanze hérite de singe OrangOutan hérite de singe Tigre hérite de félin Lion hérite de félin Mon souci est que j'écris toutes les méthodes dans la classe abstraite Animal et que je ne sais pas quoi mettre dans les interfaces Mammifere et Serpent. Si quelqu'un pouvait m'aider à mieux répartir les méthodes? Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 16 avril 2006 Partager Posté(e) le 16 avril 2006 A mon avis, Boa est un Serpent plutôt qu'un Mammifère A part ça, je verrais plutôt : CA Animal CA Serpent extends Animal CA Mammifère extends Animal CA Singe extends Mammifère CA Felin extends Mammifère Et ensuite pour les animaux, que des classes concrètes dérivant de ces classes. Tu colles tout dans Animal puisque toutes les méthodes demandées sont communes à tous les animaux. Pour leur description, tu peux faire une description générale dans Animal en réimplémentant la méthode toString(), et l' "overrider" dans certaines sous-classes pour proposer des descriptions plus fines (par exemple pour le Boa, qui est protégé). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Premium Posté(e) le 16 avril 2006 Auteur Partager Posté(e) le 16 avril 2006 A mon avis, Boa est un Serpent plutôt qu'un Mammifère A part ça, je verrais plutôt : CA Animal CA Serpent extends Animal CA Mammifère extends Animal CA Singe extends Mammifère CA Felin extends Mammifère Et ensuite pour les animaux, que des classes concrètes dérivant de ces classes. Tu colles tout dans Animal puisque toutes les méthodes demandées sont communes à tous les animaux. Pour leur description, tu peux faire une description générale dans Animal en réimplémentant la méthode toString(), et l' "overrider" dans certaines sous-classes pour proposer des descriptions plus fines (par exemple pour le Boa, qui est protégé). Tu me conseilles donc de n'utiliser que des classes abstraites pas d'interface ,c'est bien ça? Les classes Mammifere,Singe et Felin n'auront aucune nouvelle méthode tandis que Serpent aura un nouvel attribut ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 16 avril 2006 Partager Posté(e) le 16 avril 2006 C'est plus souple : si tu veux faire évoluer ton appli et que, tout à coup, les Mammifères ont un comportement différent des Serpents, il suffira de rajouter une méthode (concrète ou abstraite) dans Mammifère. Plus généralement, tu peux reconnaître qu'il te faut une interface si son nom est un adjectif. Par exemple : Chassable (pour les espèces non protégées) serait plutôt une interface; Mammifère est plutôt une classe, car cela représente un type d' "objet réel". C'est une astuce un peu "à la louche", mais généralement ça fonctionne bien. :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Premium Posté(e) le 16 avril 2006 Auteur Partager Posté(e) le 16 avril 2006 C'est plus souple : si tu veux faire évoluer ton appli et que, tout à coup, les Mammifères ont un comportement différent des Serpents, il suffira de rajouter une méthode (concrète ou abstraite) dans Mammifère. Plus généralement, tu peux reconnaître qu'il te faut une interface si son nom est un adjectif. Par exemple : Chassable (pour les espèces non protégées) serait plutôt une interface; Mammifère est plutôt une classe, car cela représente un type d' "objet réel". C'est une astuce un peu "à la louche", mais généralement ça fonctionne bien. :) Merci pour la réponse Est-ce que tu pourrais m'indiquer comment il faudrait faire si je souhaite utiliser une interface pour Mammifere et Serpent? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 16 avril 2006 Partager Posté(e) le 16 avril 2006 Trouver les points communs entre les deux (déplacement, nourriture, etc) et en faire une interface. De toute façon, une interface = classe abstraite avec méthodes publiques et abstraites. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.