L’objectif ce TP est de présenter l’héritage, le polymorphisme et l’utilisation des interfaces en Java. Vous devez écrire la javadoc https://www.oracle.com/java/technologies/javase/writing-doc-comments.html au fur et à mesure de l’avancement et il est fortement conseillé d’avoir le documentation de java sous les yeux : https://docs.oracle.com/en/java/javase/14/docs/api/index.html
Dans cet exercice nous allons modéliser des plantes
, des animaux
, des mammifères
et des oiseaux
mais aussi des chiens
, des aigles
, des lapins
et des hommes
.
Test
et créez des instances de chacune des classes. Affichez avec la méthode System.out.println()
chacun des objets. toString()
(héritée de Object
, voir dans la documentation) de la super classe pour qu’elle affiche “Je suis un animal
” (ou “Je suis une plante
”). Exécutez la classe Test
. Expliquer le résultat en étudiant la classe java.lang.System
.Je suis un animal et mon identifiant est X
”.main
la classe Test
, créez des tableaux qui permettent de voir certains des animaux crées dans la section précédente comme des collections (de taille fixe) d’animaux ou de mammifères.String getInfo()
(qui appellera celle de la superclasse) pour que l’affichage du tableau suivant :{new Animal(12), new Animal(), new Chien(5,"Medor"), new Homme(), new Homme(25,"Robert")}
soit de la forme :
Je suis un animal âgé de 12 an(s). Je suis un animal. Je suis un animal âgé de 5 an(s). Je suis un mammifère. Je suis un chien de nom Médor. Je suis un animal. Je suis un mammifère. Je suis un homme. Je suis un animal âgé de 25 an(s). Je suis un mammifère. Je suis un homme de nom Robert.
String moyenExpression
qui retourne une phrase du type “Je parle
”, “J’aboie
”, ou “Je fais des bulles
” (l’aigle trompette, glapit ou glatit ; le lapin clapit).afficherAnimaux()
dans la classe Animal
qui prend en paramètre un tableau d’animaux et qui affiche leur référence et leur cri. Testez la sur le tableau de la question précédente.NB_MAX_ANIMAUX
).void manger
avec comme paramètre un autre animal) ou des herbivores (ils comportent la méthode void manger
avec comme paramètre une plante) ou les deux. Créez deux interfaces pour décrire ces comportementsJe mord X
”, et les aigles affichent “Je déchire X
”.Je broute X
”, et les lapins “Je grignotte X
”.IOmnivore
.manger(unePlante
sur la Vache
que avez déjà créée en la voyant à travers une référence de type IHerbivore
. Peut-on appliquer la méthode moyenExpression()
sur cette référence ?lesCarnivores’ et
lesHerbivores’’ pour manipuler les animaux existants. Créez un lapin, et faites le manger par tous les carnivores, créez une plante et faites la manger par les herbivores.Lire l’introduction à git https://bruno.univ-tln.fr/git/gitminimal puis versionner le TP1 sur un compte github. et étudier les différents workflow possible : https://www.atlassian.com/fr/git/tutorials/comparing-workflows