Menu
Coddy logo textTech

Nadpisywanie odziedziczonych metod

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

Przesłanianie metod polega na tym, że klasa potomna dostarcza własną implementację metody, którą dziedziczy po klasie nadrzędnej. Wersja klasy potomnej „przesłania” (zastępuje) wersję klasy nadrzędnej.

Prosty przykład:

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

class Vehicle {
  start() {
    return "Vehicle starting...";
  }
}

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

class Car extends Vehicle {
  // To NADPISUJE metodę start() klasy Vehicle
  start() {
    return "Car engine roaring to life!";
  }
}

Użyj klas:

const vehicle = new Vehicle();
const car = new Car();

console.log(vehicle.start());      // "Vehicle starting..." (oryginalna)
console.log(car.start());          // "Car engine roaring to life!" (nadpisana)

Najważniejsze zasady nadpisywania:

  1. Taka sama nazwa metody jak w klasie nadrzędnej
  1. Takie same lub zgodne parametry
  1. Wersja potomna jest wywoływana na obiektach potomnych
  1. Nie są potrzebne żadne specjalne słowa kluczowe — wystarczy zdefiniować metodę
challenge icon

Wyzwanie

Masz daną klasę nadrzędną Shape i klasę podrzędną Circle. Klasa nadrzędna ma metodę calculateArea(), która zwraca 0.

Twoim zadaniem jest nadpisanie metody calculateArea() w klasie Circle, aby obliczała rzeczywiste pole koła.

Wzór na pole koła: π × promień²
W JavaScript: Math.PI * this.radius * this.radius

Spróbuj swoich sił

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

// Przetestuj swoją implementację
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
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