Vous êtes sur la page 1sur 2

TP N°4 : Héritage et polymorphisme

TP N°4 : Héritage et polymorphisme

L'héritage est un mécanisme qui permet à une classe d'hériter l'ensemble du


comportement et des attributs d'une autre classe. Dans ce TP, nous allons voir
comment mettre en œuvre l’héritage en Java.

Exercice 1 : Héritage
La représentation UML d’une bouteille de lait et d’une bouteille de vin est la
suivante :

bouteilleDeLait bouteilleDeVin
+ contenance : reel + contenance : reel
+ dateMiseEnBout : date + dateMiseEnBout : date
- DatePéremption : date + couleur : chaîne

+ EstVide() : booléen + EstVide() : booléen


+ EstPerimée() : booléen

1- Ecrire les classes représentant une bouteille de lait et d’une bouteille de vin,
n’oublier pas d’ajouter les accesseurs (get_contenance , etc…)
2- Ecrire une classe TestBouteille qui nous permet de créer une bouteille (B_lait) de
lait et une bouteille (B_vin) de vin. Afficher la contenance de chaque bouteille
ainsi que leur date de mise en bouteille.
3- Est-ce que vous constatez que les deux objets ont des points communs ?
Proposer une solution pour éliminer les doublons.
4- Est-ce que vous êtes obligés de modifier votre classe TestBouteille ?
5- Dans votre classe TestBouteille, ajouter les instructions suivantes :
Bouteille B= B_lait ;
System.out.println(B. get_contenance()) ;
Compiler la classe TestBouteille , est-ce que vous constatez des erreurs lors de la
compilation ? ou de l’exécution ?
6- Dans votre classe TestBouteille, ajouter les instructions suivantess :
Bouteille B= new Bouteille() ;
BouteilleDeLait B_Lait2=B ;
System.out.println(B_Lait2. get_contenance()) ;
Compiler la classe TestBouteille , est-ce que vous constatez des erreurs lors de la
compilation ? ou de l’exécution ? expliquer ?

Exercice 2 : Héritage et polymorphisme


Le lion, l’ours et l’Autruche héritent de la classe animal. Les animaux cités savent
tous dormir, mais chaque race a ses habitudes particulières. Le lion dort sur son
ventre, l’ours dort dans l’arbre et l’Autruche dort débout ;- )

M.Ouanan TP Java 1
TP N°4 : Héritage et polymorphisme

1- Dessiner le graphe d'héritage correspondant.


2- A votre avis la méthode « dormir » se situe dans quelle classe, justifier votre
réponse.
3- Ecrire une classe Animal qui dispose d’un attribut entier nbPattes. Cette classe
dispose des méthodes suivantes :
 le constructeur, qui prend en argument un entier (le nombre de pattes).
 Les méthodes d'accès et de modification du nombre de pattes,
 La méthode affiche() qui affiche le nombre de pattes de l’animal.
 La méthode dormir() qui affiche «animal est en train de dormir» lors de
son invocation.
4- Ecrire une classe Autruche qui hérite de la classe Animal. Ajouter à cette classe
quelques caractéristiques de l’animal Autruche.
5- Ecrire une classe Lion qui hérite de la classe Animal. Ajouter à cette classe
quelques caractéristiques de l’animal Lion.
6- Ecrire une classe Ours qui hérite de la classe Animal. Ajouter à cette classe
quelques caractéristiques de l’animal Ours.
7- Ecrire une classe TestAnimal qui contient le code suivant :
public class TestAnimal {
public static void main(String argv[]){
Autriche A= new Autruche() ;
Lion L= new Lion();
A.dormir();
L.dormir();
Animal A1= new Animal(2);
A1.dormir() ;
}
}
Quels sont les résultats affichés ?

8- Dans les classe Lion, Ours et Autruche redéfinir la méthode dormir() (par exemple
la méthode dormir() de la classe Ours affiche «je dors dans un arbre», etc…)
9- Qu’appelle t’on le mécanisme de redéfinition d’une méthode ?
10-Ecrire une classe TestAnimal qui contient le code suivant :
public class TestAnimal {
public static void main(String argv[]){
Autriche A= new Autruche() ;
Lion L= new Lion();
A.dormir();
L.dormir();
Animal A1= new Animal(2);
A1.dormir() ;
Animal A2= L ;
A2.dormir() ;
}
}
Quels sont les résultats affichés ? Est-ce que l’instruction A2.dormir() invoque la
méthode dormir de la classe Animal ou bien celle de la classe Lion , justifier votre
réponse?

M.Ouanan TP Java 2

Vous aimerez peut-être aussi