0Pricing
JavaScript Academy · Leçon

Héritage, super et préférence pour la composition

Étendez une classe de base avec extends, appelez super dans les constructeurs, redéfinissez les méthodes en toute sécurité et sachez quand une composition simple est préférable

Héritage, super et préférence pour la composition est une leçon JavaScript Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage JavaScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours JavaScript Academy comprend 3 leçons au total.

Vue d’ensemble

Objectif : utiliser l’héritage de base sans confusion.

  • extends crée une classe enfant
  • super(...) appelle le constructeur parent
  • Redéfinissez une méthode ; vous pouvez appeler super.method()
  • Si la relation n’est pas « est-un », préférez la composition
Héritage, super et préférence pour la composition — illustration 1

extends et super

Créez une classe enfant avec extends ; appelez super(name) pour exécuter le constructeur parent et initialiser this.

// Base class with a small field and method
class Animal {
  constructor(name) {
    this.name = name;
  }
  info() {
    return "Animal:" + this.name;
  }
}

// Child class extends the base and calls super(...)
class Dog extends Animal {
  constructor(name, breed) {
    // must call super() before using this
    super(name);
    this.breed = breed;
  }
  speak() {
    return "woof";
  }
}

const d = new Dog("Milo", "Beagle");
console.log(d.info(), d.speak());
Héritage, super et préférence pour la composition — illustration 2

Redéfinition d’une méthode

Lors d’une redéfinition, vous pouvez appeler super.method() pour réutiliser la logique de base, puis ajouter votre modification.

// Override a method; keep parent behavior with super.method()
class Button {
  click() {
    return "base-click";
  }
}

class IconButton extends Button {
  click() {
    // call parent behavior, then add something
    const base = super.click();
    return base + "+icon";
  }
}

const b = new IconButton();
console.log(b.click()); // "base-click+icon"
Héritage, super et préférence pour la composition — illustration 3

Préférez la composition pour une relation « possède-un »

Si la relation est de type possède-un (utilise un utilitaire), préférez la composition à l’héritage pour garder des classes simples.

// Composition: use a helper object instead of extending
class Logger {
  log(msg) {
    console.log("[log]", msg);
  }
}

class Player {
  constructor(name, logger) {
    this.name = name;
    this.logger = logger; // has-a logger
  }
  score(points) {
    this.logger.log(this.name + " +" + points);
  }
}

const logger = new Logger();
const p = new Player("Ayla", logger);
p.score(5);
Héritage, super et préférence pour la composition — illustration 4

« Est-un » ou « possède-un »

L’héritage modélise une relation est-un : un Dog est un Animal. La composition sert aux utilitaires de type possède-un.

// Use instanceof for a quick is-a check
console.log("Dog is Animal?", d instanceof Animal);
console.log("Player is Animal?", p instanceof Animal);
Héritage, super et préférence pour la composition — illustration 5

Bonnes habitudes pour les débutants

Conseils :

  • Gardez les hiérarchies peu profondes pour les débutants.
  • Appelez super(...) en premier dans les constructeurs des sous-classes.
  • Ne redéfinissez que ce qui est nécessaire ; réutilisez avec super.method().
  • Préférez la composition pour les utilitaires et les fonctionnalités transversales.
Héritage, super et préférence pour la composition — illustration 6

Quiz sur les bases de super(...)

Vérification rapide : super dans le constructeur d’une sous-classe.

Héritage, super et préférence pour la composition — illustration 7

Récapitulatif

Récapitulatif : utilisez extends pour une véritable relation est-un, appelez super(...) rapidement, redéfinissez avec précaution (appelez super.method() lorsque cela est utile) et préférez la composition pour les utilitaires.

Héritage, super et préférence pour la composition — illustration 8

Questions Fréquemment Posées

La leçon « Héritage, super et préférence pour la composition » est-elle gratuite ?

Oui — le texte complet de « Héritage, super et préférence pour la composition » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours JavaScript Academy, passe à CoddyKit PRO. Le cours JavaScript Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Héritage, super et préférence pour la composition » ?

Étendez une classe de base avec extends, appelez super dans les constructeurs, redéfinissez les méthodes en toute sécurité et sachez quand une composition simple est préférable Tu pratiques JavaScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer JavaScript Academy ?

Aucune expérience préalable n'est requise. JavaScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.

Combien de temps prend la leçon « Héritage, super et préférence pour la composition » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon JavaScript Academy ?

Oui. Chaque leçon JavaScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Champs de classe, champs privés # et membres static
  2. Héritage, super et préférence pour la composition
  3. Mixins (aperçu) — réutilisation simple sans hiérarchies profondes
← Retour à JavaScript Academy