Retour à la leçon
Mission

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.