Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Implementer Klassearv med Extends og Super() | Mastering JavaScript-klasser og Arv
Avansert JavaScript-mestring

bookUtfordring: Implementer Klassearv med Extends og Super()

Oppgave

Du arbeider med et transportsystem som sporer ulike typer kjøretøy. Hvert kjøretøy har en make, model og year. For elektriske kjøretøy må du også spore batteryCapacity. Du skal bruke arv for å utvide en generell Vehicle-klasse for spesifikke elektriske kjøretøy.

  1. Opprett en ElectricVehicle-klasse som utvider Vehicle;
  2. Konstruktøren til ElectricVehicle skal ta imot make, model, year og batteryCapacity;
  3. Bruk super() for å initialisere make, model og year i superklassen;
  4. Legg til en getDetails-metode i ElectricVehicle som overstyrer Vehicle sin getDetails-metode. Den skal kalle super.getDetails() og legge til informasjon om batteryCapacity. Formatet skal være: "{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
  • Definer en klasse ElectricVehicle som utvider Vehicle;
  • I konstruktøren til ElectricVehicle, legg til en parameter batteryCapacity etter make, model og year;
  • Bruk super(make, model, year) for å kalle superklassens konstruktør og initialisere make, model og year;
  • Tildel batteryCapacity til en egenskap i ElectricVehicle;
  • Definer en getDetails-metode i ElectricVehicle som overstyrer Vehicle sin getDetails-metode;
  • Inne i getDetails, bruk super.getDetails() for å hente detaljene fra superklassen, og legg deretter til informasjon om batterikapasitet i returstrengen.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 15

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookUtfordring: Implementer Klassearv med Extends og Super()

Sveip for å vise menyen

Oppgave

Du arbeider med et transportsystem som sporer ulike typer kjøretøy. Hvert kjøretøy har en make, model og year. For elektriske kjøretøy må du også spore batteryCapacity. Du skal bruke arv for å utvide en generell Vehicle-klasse for spesifikke elektriske kjøretøy.

  1. Opprett en ElectricVehicle-klasse som utvider Vehicle;
  2. Konstruktøren til ElectricVehicle skal ta imot make, model, year og batteryCapacity;
  3. Bruk super() for å initialisere make, model og year i superklassen;
  4. Legg til en getDetails-metode i ElectricVehicle som overstyrer Vehicle sin getDetails-metode. Den skal kalle super.getDetails() og legge til informasjon om batteryCapacity. Formatet skal være: "{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
  • Definer en klasse ElectricVehicle som utvider Vehicle;
  • I konstruktøren til ElectricVehicle, legg til en parameter batteryCapacity etter make, model og year;
  • Bruk super(make, model, year) for å kalle superklassens konstruktør og initialisere make, model og year;
  • Tildel batteryCapacity til en egenskap i ElectricVehicle;
  • Definer en getDetails-metode i ElectricVehicle som overstyrer Vehicle sin getDetails-metode;
  • Inne i getDetails, bruk super.getDetails() for å hente detaljene fra superklassen, og legg deretter til informasjon om batterikapasitet i returstrengen.
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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 15
some-alt