Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Implementierung von Klassenvererbung mit Extends und Super() | JavaScript-Klassen und Vererbung Meistern
Fortgeschrittene JavaScript-Beherrschung

bookHerausforderung: Implementierung von Klassenvererbung mit Extends und Super()

Aufgabe

Sie arbeiten an einem Transportmanagementsystem, das verschiedene Fahrzeugtypen verfolgt. Jedes Fahrzeug verfügt über die Eigenschaften make, model und year. Für Elektrofahrzeuge muss zusätzlich die batteryCapacity erfasst werden. Sie sollen Vererbung nutzen, um eine allgemeine Klasse Vehicle für spezifische Elektrofahrzeuge zu erweitern.

  1. Erstellen Sie eine Klasse ElectricVehicle, die von Vehicle erbt;
  2. Der Konstruktor von ElectricVehicle soll 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 Methode getDetails zu ElectricVehicle hinzu, die die Methode Vehicle von getDetails überschreibt. Sie soll super.getDetails() aufrufen und Informationen zur batteryCapacity ergänzen. Das Format soll 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 einer Klasse ElectricVehicle, die von Vehicle erbt;
  • Im Konstruktor von ElectricVehicle einen Parameter batteryCapacity nach make, model und year hinzufügen;
  • Verwenden von super(make, model, year), um den Konstruktor der Elternklasse aufzurufen und make, model sowie year zu initialisieren;
  • Zuweisen von batteryCapacity zu einer Eigenschaft in ElectricVehicle;
  • Definieren einer Methode getDetails in ElectricVehicle, die die Methode Vehicle von getDetails überschreibt;
  • Innerhalb von getDetails super.getDetails() verwenden, um die Details der Elternklasse zu erhalten, und anschließend die Information zur Batteriekapazität an den Rückgabewert anhängen.
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

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 2.22

bookHerausforderung: Implementierung von Klassenvererbung mit Extends und Super()

Swipe um das Menü anzuzeigen

Aufgabe

Sie arbeiten an einem Transportmanagementsystem, das verschiedene Fahrzeugtypen verfolgt. Jedes Fahrzeug verfügt über die Eigenschaften make, model und year. Für Elektrofahrzeuge muss zusätzlich die batteryCapacity erfasst werden. Sie sollen Vererbung nutzen, um eine allgemeine Klasse Vehicle für spezifische Elektrofahrzeuge zu erweitern.

  1. Erstellen Sie eine Klasse ElectricVehicle, die von Vehicle erbt;
  2. Der Konstruktor von ElectricVehicle soll 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 Methode getDetails zu ElectricVehicle hinzu, die die Methode Vehicle von getDetails überschreibt. Sie soll super.getDetails() aufrufen und Informationen zur batteryCapacity ergänzen. Das Format soll 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 einer Klasse ElectricVehicle, die von Vehicle erbt;
  • Im Konstruktor von ElectricVehicle einen Parameter batteryCapacity nach make, model und year hinzufügen;
  • Verwenden von super(make, model, year), um den Konstruktor der Elternklasse aufzurufen und make, model sowie year zu initialisieren;
  • Zuweisen von batteryCapacity zu einer Eigenschaft in ElectricVehicle;
  • Definieren einer Methode getDetails in ElectricVehicle, die die Methode Vehicle von getDetails überschreibt;
  • Innerhalb von getDetails super.getDetails() verwenden, um die Details der Elternklasse zu erhalten, und anschließend die Information zur Batteriekapazität an den Rückgabewert anhängen.
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
some-alt