Menu
Coddy logo textTech

Usare super

Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 37 di 56.

Quando esegui l’override di un metodo, puoi comunque accedere alla versione originale della classe genitore usando super.methodName(). Questo ti permette di estendere o modificare il comportamento della classe genitore invece di sostituirlo completamente.

Crea una classe genitore con un metodo:

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

Crea una classe figlia che estende la classe genitore:

class Dog extends Animal {
  makeSound() {
    // Chiama prima il metodo della classe genitore
    const parentSound = super.makeSound();
    // Poi aggiungi altre funzionalità
    return `${parentSound}, but also Woof!`;
  }
}

Crea un'istanza della classe figlia:

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

La parola chiave super ti consente di chiamare i metodi della classe genitore, aggiungendo comunque le tue funzionalità nella classe figlia.

challenge icon

Sfida

Ti viene data una classe Shape con un metodo calculateArea() e una classe Rectangle che la estende. Il tuo compito è sovrascrivere il metodo calculateArea() in Rectangle usando super.

Il tuo compito è completare il metodo calculateArea() nella classe Rectangle per:

  1. Chiamare il metodo calculateArea() della classe genitore usando super e memorizzare il risultato
  2. Calcolare l'area effettiva del rettangolo: width × height
  3. Restituire una stringa combinata: messaggio della classe genitore + area del rettangolo. Esempio: Calculating area... Rectangle area: 50

Provalo tu

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

// Codice di test - non modificare
const rectangle = new Rectangle(5, 10);
console.log(rectangle.calculateArea()); // Previsto: "Calculating area... Rectangle area: 50"
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore JavaScript online