Retour à la leçonMission
Mission : sécuriser le compte bancaire VIP
Corriger une fausse encapsulation avec convention `_champ`, implémenter un héritage correct avec super(), et garantir un vrai champ privé.
Contexte
Un développeur junior de Technologik a écrit cette classe pour un compte bancaire, en pensant que le solde était protégé :
js
class CompteBancaire {
constructor(titulaire, solde) {
this.titulaire = titulaire;
this._solde = solde;
}
}
const c = new CompteBancaire("Alice", 1000);
c._solde = -99999; // personne n'empêche ça !Un audit de sécurité interne signale que n'importe quel code peut modifier _solde directement, en contournant toute validation. Il faut aussi créer une classe CompteVIP qui hérite de CompteBancaire et ajoute une méthode retirer sans plafond, tout en restant valide.