Menu
Coddy logo textTech

Utiliser super

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy. Leçon 37 sur 56.

Lorsque vous redéfinissez une méthode, vous pouvez toujours accéder à la version originale du parent en utilisant super.methodName(). Cela vous permet d'étendre ou de modifier le comportement du parent au lieu de le remplacer complètement.

Créez une classe parente avec une méthode :

class Animal {
  makeSound() {
    return "Generic animal sound";
  }
}

Créez une classe enfant qui étend le parent :

class Dog extends Animal {
  makeSound() {
    // Appelez d'abord la méthode du parent
    const parentSound = super.makeSound();
    // Puis étendez avec des fonctionnalités supplémentaires
    return `${parentSound}, but also Woof!`;
  }
}

Créez une instance de la classe enfant :

const myDog = new Dog();
console.log(myDog.makeSound());
// Sortie : "Generic animal sound, but also Woof!"

Le mot-clé super vous permet d'appeler les méthodes de la classe parente tout en ajoutant votre propre fonctionnalité dans la classe enfant.

challenge icon

Défi

On vous donne une classe Shape avec une méthode calculateArea() et une classe Rectangle qui en hérite. Votre tâche consiste à surcharger la méthode calculateArea() dans Rectangle en utilisant super.

Votre tâche consiste à compléter la méthode calculateArea() dans la classe Rectangle afin de :

  1. Appeler la méthode calculateArea() de la classe parente en utilisant super et stocker le résultat
  2. Calculer la superficie réelle du rectangle : width × height
  3. Renvoyer une chaîne combinée : le message de la classe parente + la superficie du rectangle. Exemple : Calculating area... Rectangle area: 50

Essayez vous-même

import { Shape } from './shapes.js';
import { Rectangle } from './shapes.js';

// Code de test - ne pas modifier
const rectangle = new Rectangle(5, 10);
console.log(rectangle.calculateArea()); // Attendu : "Calculating area... Rectangle area: 50"
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur JavaScript en ligne