Héritage et polymorphisme

Exercices corrigés en Python sur le polymorphisme et l’héritage c’est à dire créer une classe B qui hérite d’une classe A.




Polymorphisme et héritage: La classe Rectangle et carré

Définir une classe Rectangle d'attributs:longueur et largeur et nom et les méthodes:
  • perimetre qui retourne le périmètre du rectangle.
  • surface qui retourne la surface du rectangle.
  • afficher qui affiche le périmètre et la surface d'un rectangle ainsi leurs dimensions en longueur et largeur.
Définir une classe Carre héritant de Rectangle et qui surcharge l’attribut d’instance : nom = "carré".

Héritage simple: Personne, employé et chef

Définir les classes suivantes:
  • Une classe DateNaissance avec trois attributs, jour, mois, année et une méthode ToString qui convertit la date de naissance en chaine de caractères
  • Une classe Personne  avec trois attributs, nom, prénom et date de naissance et une méthode polymorphe Afficher pour afficher les données de chaque personne.
  • Une classe Employé qui dérive de la classe Personne, avec en plus un attribut Salaire et la redéfinition de la méthode Afficher.
  • Une classe Chef qui dérive de la classe Employé, avec en plus un attribut Service et la redéfinition de la méthode Afficher.

Surcharge(Overloading) en Python

Surcharge(Overloading) en Python: on ne peut pas définir, dans la même classe, plusieurs fonctions de même nom mais de différent nombre d'arguments.

Petit exercice:

Définir une classe Point avec un constructeur, un point est définit soit par deux coordonnées x et y, s'il s'agit d'une représentation d'un point au plan ou par trois coordonnées x, y et z, s'il s'agit d'une représentation d'un point en espace. La classe Point doit contenir une méthode ToString qui affiche le point.



Polymorphisme: Classe mère Courrier

polymorphisme: Il s’agit dans cet exercice de proposer une conception modélisant une boîtes aux lettres.
Une boîtes aux lettres recueille des courrier qui peuvent être des lettres ou des colis.

Exemple d'exécution:

>>>L1=Lettre("Lille","Paris",80,"normal","A4")
>>>L1.ToString()
Lettre:
Adresse destination: Lille
Adress expedition: Paris
Poids: 80.00 grammes
Mode: normal
Format:A4
Prix du timbre:0.20
>>>C1=Colis("Marrakeche","Barcelone ",3500,"expresse",2.25)
>>>C1.ToString()
Collis:
Adresse destination: Marrakeche
Adress expedition: Barcelone
Poids: 3500.00 grammes
Mode: expresse
Volume: 2.25 litres
Prix du timbre:3937.50