Exercices POO Override sélectif avec super()
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Override sélectif avec super()

Quand tu surcharges (override) une méthode dans une sous-classe, tu peux quand meme reutiliser la logique du parent avec super(). C'est comme une chaine de validation : chaque niveau ajoute ses propres regles sans dupliquer celles du niveau précédent.

Par exemple, dans un système de paiement, la validation de base vérifie le montant, puis la carte ajoute la vérification du numéro, puis la carte securisee ajoute encore la vérification du CVV.

class Base:
def valider(self):
return self.montant > 0

class Enfant(Base):
def valider(self):
return super().valider() and self.autre_condition

Crée une hierarchie de paiement :
- Paiement(montant) avec valider() qui retourne True si montant > 0
- PaiementCarte(montant, numéro) qui surcharge valider() : retourne True si la validation parente reussit ET que numéro a 16 chiffres
- PaiementCarteSecure(montant, numéro, cvv) qui surcharge encore : retourne True si la validation parente reussit ET que cvv a 3 chiffres

Exemple :
PaiementCarteSecure(50, '1234567890123456', '123').valider() # renvoie True
PaiementCarteSecure(50, '123', '123').valider() # renvoie False (numéro trop court)

Tests (4/5)

Paiement valide
assert Paiement(100).valider() == True
Paiement invalide
assert Paiement(0).valider() == False
Carte valide
assert PaiementCarte(100, '1234567890123456').valider() == True
Carte invalide (mauvais numéro)
assert PaiementCarte(100, '123').valider() == False

+ 0 tests cachés

Indices (3 disponibles)

solution.py