Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Implementeer Klasse-Erfenis met Extends en Super() | Beheersing van JavaScript-Klassen en Overerving
Geavanceerde JavaScript-Beheersing

bookUitdaging: Implementeer Klasse-Erfenis met Extends en Super()

Taak

Je werkt aan een transportbeheersysteem dat verschillende typen voertuigen bijhoudt. Elk voertuig heeft een make, model en year. Voor elektrische voertuigen moet je ook de batteryCapacity bijhouden. Je gebruikt overerving om een algemene Vehicle-klasse uit te breiden voor specifieke elektrische voertuigen.

  1. Maak een ElectricVehicle-klasse die Vehicle uitbreidt;
  2. De constructor van ElectricVehicle moet make, model, year en batteryCapacity accepteren;
  3. Gebruik super() om make, model en year te initialiseren in de bovenliggende klasse;
  4. Voeg een getDetails-methode toe aan ElectricVehicle die de Vehicle-methode van getDetails overschrijft. Deze moet super.getDetails() aanroepen en informatie over batteryCapacity toevoegen. Het formaat moet zijn: "{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
  • Definieer een klasse ElectricVehicle die Vehicle uitbreidt;
  • Voeg in de constructor van ElectricVehicle een parameter batteryCapacity toe na make, model en year;
  • Gebruik super(make, model, year) om de constructor van de bovenliggende klasse aan te roepen en make, model en year te initialiseren;
  • Ken batteryCapacity toe aan een eigenschap in ElectricVehicle;
  • Definieer een getDetails-methode in ElectricVehicle die de Vehicle-methode van getDetails overschrijft;
  • Gebruik binnen getDetails de methode super.getDetails() om de details van de bovenliggende klasse op te halen en voeg vervolgens de informatie over de batterijcapaciteit toe aan de geretourneerde string.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 15

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain how inheritance works in this example?

What does the super() function do in the constructor?

How does method overriding work in JavaScript classes?

Awesome!

Completion rate improved to 2.22

bookUitdaging: Implementeer Klasse-Erfenis met Extends en Super()

Veeg om het menu te tonen

Taak

Je werkt aan een transportbeheersysteem dat verschillende typen voertuigen bijhoudt. Elk voertuig heeft een make, model en year. Voor elektrische voertuigen moet je ook de batteryCapacity bijhouden. Je gebruikt overerving om een algemene Vehicle-klasse uit te breiden voor specifieke elektrische voertuigen.

  1. Maak een ElectricVehicle-klasse die Vehicle uitbreidt;
  2. De constructor van ElectricVehicle moet make, model, year en batteryCapacity accepteren;
  3. Gebruik super() om make, model en year te initialiseren in de bovenliggende klasse;
  4. Voeg een getDetails-methode toe aan ElectricVehicle die de Vehicle-methode van getDetails overschrijft. Deze moet super.getDetails() aanroepen en informatie over batteryCapacity toevoegen. Het formaat moet zijn: "{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
  • Definieer een klasse ElectricVehicle die Vehicle uitbreidt;
  • Voeg in de constructor van ElectricVehicle een parameter batteryCapacity toe na make, model en year;
  • Gebruik super(make, model, year) om de constructor van de bovenliggende klasse aan te roepen en make, model en year te initialiseren;
  • Ken batteryCapacity toe aan een eigenschap in ElectricVehicle;
  • Definieer een getDetails-methode in ElectricVehicle die de Vehicle-methode van getDetails overschrijft;
  • Gebruik binnen getDetails de methode super.getDetails() om de details van de bovenliggende klasse op te halen en voeg vervolgens de informatie over de batterijcapaciteit toe aan de geretourneerde string.
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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 15
some-alt