Challenge: Implement Class Inheritance with extends and super()
Task
You're working on a transportation management system that tracks different types of vehicles. Each vehicle has a make
, model
, and year
. For electric vehicles, you also need to track the batteryCapacity
. You'll use inheritance to extend a general Vehicle
class for specific electric vehicles.
- Create an
ElectricVehicle
class that extendsVehicle
; - The
ElectricVehicle
constructor should acceptmake
,model
,year
, andbatteryCapacity
; - Use
super()
to initializemake
,model
, andyear
in the parent class; - Add a
getDetails
method toElectricVehicle
that overridesVehicle
'sgetDetails
method. It should callsuper.getDetails()
and add information aboutbatteryCapacity
. The format should be:"{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh."
.
12345678910111213141516171819202122232425262728293031class 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.
- Define a class
ElectricVehicle
that extendsVehicle
; - In the
ElectricVehicle
constructor, add a parameterbatteryCapacity
aftermake
,model
, andyear
; - Use
super(make, model, year)
to call the parent class's constructor and initializemake
,model
, andyear
; - Assign
batteryCapacity
to a property inElectricVehicle
; - Define a
getDetails
method inElectricVehicle
that overridesVehicle
'sgetDetails
method; - Inside
getDetails
, usesuper.getDetails()
to get the parent class details, then add the battery capacity information to the return string.
12345678910111213141516171819202122232425262728293031class 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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.22
Challenge: Implement Class Inheritance with extends and super()
Stryg for at vise menuen
Task
You're working on a transportation management system that tracks different types of vehicles. Each vehicle has a make
, model
, and year
. For electric vehicles, you also need to track the batteryCapacity
. You'll use inheritance to extend a general Vehicle
class for specific electric vehicles.
- Create an
ElectricVehicle
class that extendsVehicle
; - The
ElectricVehicle
constructor should acceptmake
,model
,year
, andbatteryCapacity
; - Use
super()
to initializemake
,model
, andyear
in the parent class; - Add a
getDetails
method toElectricVehicle
that overridesVehicle
'sgetDetails
method. It should callsuper.getDetails()
and add information aboutbatteryCapacity
. The format should be:"{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh."
.
12345678910111213141516171819202122232425262728293031class 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.
- Define a class
ElectricVehicle
that extendsVehicle
; - In the
ElectricVehicle
constructor, add a parameterbatteryCapacity
aftermake
,model
, andyear
; - Use
super(make, model, year)
to call the parent class's constructor and initializemake
,model
, andyear
; - Assign
batteryCapacity
to a property inElectricVehicle
; - Define a
getDetails
method inElectricVehicle
that overridesVehicle
'sgetDetails
method; - Inside
getDetails
, usesuper.getDetails()
to get the parent class details, then add the battery capacity information to the return string.
12345678910111213141516171819202122232425262728293031class 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.
Tak for dine kommentarer!