5/ HERITAGE

A partir d’un exemple, nous allons expliquer la notion d’héritage.

Enoncé : Une société possède un fichier PERSONNEL composé des rubriques

 
Nom
Prénom
Adresse
Ville
Fonction
Salaire
 
Les employés dont la fonction est « REPRESENTANT » ont un mode de calcul du salaire qui diffère des autres salariés. Leur salaire est déterminé en additionnant à leur salaire fixe, une commission et des frais de remboursement.

La commission est calculée en fonction de leur chiffre d’affaires selon le barème suivant :
 
Si CA < 100 000 Frs 
    alors commission = CA * 0.02 
    sinon  si CA < 200 000 
                    alors commission = 2 000 + (CA - 100 000)*0.04 
                    sinon commission = 6 000 + (CA - 200 000)*0.06 
                 fsi 
fsi
 
Les frais sont remboursés en fonction d’un 
plafond qui est fixé pour chaque représentant. 
Les frais remboursés sont calculés 
selon la méthode suivante :
PLAFOND FRAIS
1
1 000 Frs
2
1 500 Frs
3
2 000 Frs
4
2 500 Frs
5
3 000 Frs
 
Si Frais > Plafond 
    alors FraisRemboursés= Plafond 
    Sinon FraisRemboursés = Frais 
Fsi
 
 

 Problème : Créer une classe SALARIE qui permettra

 
Si le salarié est un REPRESENTANT l’affichage du salaire se fera sous la forme suivante : 
Sinon l’affichage du salaire se fera sous la forme suivante : 
N° : 1 
Nom du salarié : RIGOU 
Adresse : 3, Rue Dinard 
Ville : 60300 SENLIS 
Fonction : REPRESENTANT 

SALAIRE FIXE : 7 500 
COMMISSION : 5 440 
CA : 186 000 
REMBOURSEMENT DES NOTES DE FRAIS : 750 
TOTAL A PAYER : 13 690

N° : 9 
Nom du salarié : ENKLER 
Adresse : 78, Rue du stade 
Ville : 60400 NOYON 
Fonction : MAGASINIER 
Salaire à payer : 8 690 Frs 
 

Résolution :

Attributs : Méthodes :

 Quatre méthodes peuvent être définies concernant  tous les types d’employés.

 Une autre méthode concerne tous les employés mais diffère selon que l’employé est un « REPRESENTANT » ou non.  Enfin, trois méthodes ne concernent que les employés dont la fonction est « REPRESENTANT ». 1/ Une première solution consiste à associer d’une part les 9 attributs à tous les salariés, quelle que soit leur fonction, en mettant à 0 les attributs Ca, Frais et PlafondFrais dans le cas où le salarié n’a pas la fonction de « REPRESENTANT », et d’autre part, à tester la fonction du salarié dans les méthodes CumulCa, CumulFrais, RemiseCumulsZero et AfficherSalaire.

2/ Une autre solution est de définir une classe SALARIE ayant comme attributs et comme méthodes ce qui peut convenir à tous les types d’employés et une autre classe REPRESENTANT avec ses spécificités.
La classe REPRESENTANT a des attributs et des méthodes identiques à la classe SALARIE, il est donc intéressant de ne pas redéfinir et réécrire toute cette partie commune. Le mécanisme permettant de récupérer ces informations est l’HERITAGE.

En appliquant le mécanisme de l’héritage à notre problème, la classe REPRESENTANT hérite des attributs et des méthodes de la classe SALARIE, et doit juste déclarer les attributs supplémentaires (Ca, Frais et PlafondFrais) et ses propres méthodes (CumulCa, CumulFrais, RemiseCumulsZero et AfficherSalaire).
La méthode AfficherSalaire doit exister dans les deux classes, elle sera juste redéfinie dans la classe REPRESENTANT.

Récapitulatif :

 

CONCEPTS DE L’HERITAGE :

ClasseDeBase = CLASSE
  Privé:
  // membres privés ne sont accessibles que par les membres de la classe
  Public :
  // membres publics sont accessibles par tous les membres de l’application qui utilisent la classe
Fclasse

ClasseDerivee = CLASSE hérite de ClasseDeBase
  Privé :
  // déclaration des attribut spécifique à la nouvelle classe
  Public :
  // déclaration des méthodes nouvelles et redéfinies de la nouvelle classe
Fclasse

     
    PAGE PRECEDENTE
    SOMMAIRE
    PAGE SUIVANTE