Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Klassenvererbung mit extends und Verwendung von super | Klassen
Fortgeschrittene JavaScript-Meisterschaft
course content

Kursinhalt

Fortgeschrittene JavaScript-Meisterschaft

Fortgeschrittene JavaScript-Meisterschaft

2. DOM-Manipulation
3. Ereignisse und Ereignisbehandlung
4. Asynchrones JavaScript und APIs

book
Herausforderung: Klassenvererbung mit extends und Verwendung von super

Aufgabe

Sie arbeiten an einem Transportsystem, das verschiedene Fahrzeugtypen verfolgt. Jedes Fahrzeug hat eine make, model und year. Für Elektrofahrzeuge müssen Sie auch die batteryCapacity verfolgen. Sie werden Vererbung verwenden, um eine allgemeine Vehicle-Klasse für spezifische Elektrofahrzeuge zu erweitern.

  1. Erstellen Sie eine ElectricVehicle-Klasse, die Vehicle erweitert;
  2. Der Konstruktor von ElectricVehicle sollte make, model, year und batteryCapacity akzeptieren;
  3. Verwenden Sie super(), um make, model und year in der Elternklasse zu initialisieren;
  4. Fügen Sie eine getDetails-Methode zu ElectricVehicle hinzu, die die Vehicle-Methode von getDetails überschreibt. Sie sollte super.getDetails() aufrufen und Informationen über batteryCapacity hinzufügen. Das Format sollte sein: "{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh.".
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle _____ _____ { _____(make, model, year, _____) { _____(_____, _____, _____); this.batteryCapacity = batteryCapacity; } _____() { return `${super._____} with a battery capacity of ${ _____._____ } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Expected: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Expected: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy
  • Definieren Sie eine Klasse ElectricVehicle, die Vehicle erweitert;
  • Fügen Sie im Konstruktor von ElectricVehicle einen Parameter batteryCapacity nach make, model und year hinzu;
  • Verwenden Sie super(make, model, year), um den Konstruktor der Elternklasse aufzurufen und make, model und year zu initialisieren;
  • Weisen Sie batteryCapacity einer Eigenschaft in ElectricVehicle zu;
  • Definieren Sie eine Methode getDetails in ElectricVehicle, die die Methode Vehicle von getDetails überschreibt;
  • Verwenden Sie innerhalb von getDetails super.getDetails(), um die Details der Elternklasse zu erhalten, und fügen Sie dann die Informationen zur Batteriekapazität zur Rückgabestring hinzu.
12345678910111213141516171819202122232425262728293031
class Vehicle { constructor(make, model, year) { this.make = make; this.model = model; this.year = year; } getDetails() { return `${this.make} ${this.model} (${this.year})`; } } class ElectricVehicle extends Vehicle { constructor(make, model, year, batteryCapacity) { super(make, model, year); this.batteryCapacity = batteryCapacity; } getDetails() { return `${super.getDetails()} with a battery capacity of ${ this.batteryCapacity } kWh.`; } } // Testing const vehicle = new Vehicle('Toyota', 'Camry', 2020); console.log(vehicle.getDetails()); // Output: Toyota Camry (2020) const electricVehicle = new ElectricVehicle('Tesla', 'Model 3', 2021, 75); console.log(electricVehicle.getDetails()); // Output: Tesla Model 3 (2021) with a battery capacity of 75 kWh.
copy

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 15
We're sorry to hear that something went wrong. What happened?
some-alt