Menu
Coddy logo textTech

Używanie super

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 37 z 56.

Gdy nadpisujesz metodę, nadal możesz uzyskać dostęp do oryginalnej wersji metody z klasy nadrzędnej za pomocą super.methodName(). Dzięki temu możesz rozszerzyć lub zmodyfikować zachowanie klasy nadrzędnej, zamiast całkowicie je zastępować.

Utwórz klasę nadrzędną z metodą:

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

Utwórz klasę potomną, która rozszerza klasę nadrzędną:

class Dog extends Animal {
  makeSound() {
    // Najpierw wywołaj metodę klasy nadrzędnej
    const parentSound = super.makeSound();
    // Następnie rozszerz ją o dodatkową funkcjonalność
    return `${parentSound}, but also Woof!`;
  }
}

Utwórz instancję klasy potomnej:

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

Słowo kluczowe super pozwala wywoływać metody klasy nadrzędnej, jednocześnie dodając własną funkcjonalność w klasie potomnej.

challenge icon

Wyzwanie

Otrzymujesz klasę Shape z metodą calculateArea() oraz klasę Rectangle, która ją rozszerza. Twoim zadaniem jest nadpisanie metody calculateArea() w klasie Rectangle przy użyciu super.

Twoim zadaniem jest uzupełnienie metody calculateArea() w klasie Rectangle, aby:

  1. Wywołać metodę calculateArea() klasy nadrzędnej przy użyciu super i zapisać wynik
  2. Obliczyć rzeczywiste pole prostokąta: width × height
  3. Zwrócić połączony ciąg znaków: komunikat klasy nadrzędnej + pole prostokąta. Przykład: Calculating area... Rectangle area: 50

Spróbuj swoich sił

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

// Kod testowy - nie modyfikuj
const rectangle = new Rectangle(5, 10);
console.log(rectangle.calculateArea()); // Oczekiwane: "Calculating area... Rectangle area: 50"
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online