PaliSkill
Python avancé

Leçon 9 / 9 — Chapitre 2: POO : héritage et polymorphisme

Cas pratique : une hiérarchie de comptes bancaires

Cette dernière leçon combine héritage, super(), redéfinition de méthode et polymorphisme, dans une petite hiérarchie de comptes.

class Compte:
    def __init__(self, titulaire, solde=0):
        self.titulaire = titulaire
        self.solde = solde

    def deposer(self, montant):
        self.solde = self.solde + montant

    def resume(self):
        return f"{self.titulaire} : {self.solde} $"

class CompteEpargne(Compte):
    def __init__(self, titulaire, solde=0, taux=0.02):
        super().__init__(titulaire, solde)
        self.taux = taux

    def appliquer_interets(self):
        self.solde = self.solde + self.solde * self.taux

    def resume(self):
        message = super().resume()
        return message + f" (taux {self.taux:.0%})"

comptes = [
    Compte("Amina", 100),
    CompteEpargne("Boubacar", 500, 0.03),
]

comptes[1].appliquer_interets()

for compte in comptes:
    print(compte.resume())

Ce que fait chaque partie :

  • CompteEpargne hérite de Compte, réutilise son __init__ via super().__init__(titulaire, solde), et ajoute un attribut taux propre.
  • resume() est redéfinie dans CompteEpargne, mais étend la version parente avec super().resume() plutôt que de la réécrire entièrement.
  • La boucle finale illustre le polymorphisme : compte.resume() appelle la bonne version selon le type réel de chaque objet, sans test explicite.

Après appliquer_interets() (500 + 500×0.03 = 515), ce code affiche Amina : 100 $, puis Boubacar : 515.0 $ (taux 3%).

À vous de jouer : ajoutez un troisième compte (Compte ou CompteEpargne) à la liste, et vérifiez que la boucle finale l'affiche correctement selon son propre type.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès