← 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 :
CompteEpargnehérite deCompte, réutilise son__init__viasuper().__init__(titulaire, solde), et ajoute un attributtauxpropre.resume()est redéfinie dansCompteEpargne, mais étend la version parente avecsuper().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