Programmation par les Objets en Java
Dériver des sous-classes (TD4bis)

Najib Tounsi

Ce TD fait suite au TD précédent sur l'héritage. On reprend la classe Article et on en dérive des sous-classes. Arbre d'héritage et polymorphisme

Sommaire

  1. Relation d'héritage (suite)
    1. Classe Article
    2. Essai Simple Héritage et Polymorphisme
    3. Arbre d'héritage

Relation d'héritage (suite)

Classe Article

  1. Programmer la classe Article (voir cours) dont la spécification est donnée ici. (http://www.mescours.ma/Java/srcJava/doc/).
  2. Rajouter (s'il n'y est pas) et programmer le constructeur :

        public Article(int n, String m, double p, int  q)

    qui initialise un nouvel article avec les valeurs fournies (resp. numéro et nom de l'article, son prix HT et la quantité actuelle en stock).
      
  3. Tester avec le programme suivant :
    class TestArticle {
        public static void main(String[] args){
           
            Article a = new Article () ;
            Article a2 = new Article(1, "Pomme", 10, 100 );
            Article a3 = new Article(a);       
            System.out.println(a.getNumero());
            System.out.println(a.getDesignation());
            System.out.println(a.prixTTC());
            System.out.println(a.getQte());
         }
    };
    qui doit donner le résultat suivant :
    C:\> java TestArticle
    0
    spécimen
    1.1
    222
  4. Faire le test aussi pour chaque instance a1 et a2. On devrait trouver :
    C:\>java TestArticle
    1
    Pomme
    11.0
    100
    pour a2 et le même résultat qu'avant pour a3.

Essai Simple Héritage et Polymorphisme

  1. Programmer une classe Vetement (voir Cour) qui est un article avec la taille et la couleur comme propriétés supplémentaires, et la classe ArticleLuxe qui est un article avec un prix TTC ayant une TVA de 25% (redéfinir la méthode public double prixTTC ()).
  2. Le programme suivant calcule le montant total à payer pour les articles d'un tableau chariot e type Article :
    public class PolyMorph {
    public static void main(String args[]){
    Article[] chariot = { new Article(1, "Pomme", 10, 100 ), new ArticleLuxe(2, "iPhone", 200, 100), new Vetement(3, "Pull", 30, 100, 5, "Vert") } ;

        double montant = 0;
        for (Article p:chariot) {
            montant +=  p.prixTTC();
        }
       System.out.println(montant);          
      }
    }
  3. devrait donner le résultat 294.0 (sachant que pour le calcul donné dans la classe Article et ArticleLuxe, la TVA est de 10% et 25% respectivement).
  4. Exercice : créer une classe avec une méthode paramétrée par un objet Article et qui affiche sont prix TTC (faire appel à la méthode prixTTC() de Article). Montrer ensuite que selon le paramètre effectif passé le prix affiché est correct.

Arbre d'héritage

  1. Créer d'autres sous-classes issues de l'arbre d'héritage donné dans le cours. Par exemple une classe Chemise dérivée de Vetement, une sous classe Aspirateur dérivée de ElectroMenager, elle-même dérivée de Article.
  2. Faire les tests nécessaires.