Uitdaging: 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.
- Maak een
ElectricVehicle-klasse dieVehicleuitbreidt; - De constructor van
ElectricVehiclemoetmake,model,yearenbatteryCapacityaccepteren; - Gebruik
super()ommake,modelenyearte initialiseren in de bovenliggende klasse; - Voeg een
getDetails-methode toe aanElectricVehicledie deVehicle-methode vangetDetailsoverschrijft. Deze moetsuper.getDetails()aanroepen en informatie overbatteryCapacitytoevoegen. Het formaat moet zijn:"{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.
- Definieer een klasse
ElectricVehicledieVehicleuitbreidt; - Voeg in de constructor van
ElectricVehicleeen parameterbatteryCapacitytoe namake,modelenyear; - Gebruik
super(make, model, year)om de constructor van de bovenliggende klasse aan te roepen enmake,modelenyearte initialiseren; - Ken
batteryCapacitytoe aan een eigenschap inElectricVehicle; - Definieer een
getDetails-methode inElectricVehicledie deVehicle-methode vangetDetailsoverschrijft; - Gebruik binnen
getDetailsde methodesuper.getDetails()om de details van de bovenliggende klasse op te halen en voeg vervolgens de informatie over de batterijcapaciteit toe aan de geretourneerde 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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Uitdaging: 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.
- Maak een
ElectricVehicle-klasse dieVehicleuitbreidt; - De constructor van
ElectricVehiclemoetmake,model,yearenbatteryCapacityaccepteren; - Gebruik
super()ommake,modelenyearte initialiseren in de bovenliggende klasse; - Voeg een
getDetails-methode toe aanElectricVehicledie deVehicle-methode vangetDetailsoverschrijft. Deze moetsuper.getDetails()aanroepen en informatie overbatteryCapacitytoevoegen. Het formaat moet zijn:"{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.
- Definieer een klasse
ElectricVehicledieVehicleuitbreidt; - Voeg in de constructor van
ElectricVehicleeen parameterbatteryCapacitytoe namake,modelenyear; - Gebruik
super(make, model, year)om de constructor van de bovenliggende klasse aan te roepen enmake,modelenyearte initialiseren; - Ken
batteryCapacitytoe aan een eigenschap inElectricVehicle; - Definieer een
getDetails-methode inElectricVehicledie deVehicle-methode vangetDetailsoverschrijft; - Gebruik binnen
getDetailsde methodesuper.getDetails()om de details van de bovenliggende klasse op te halen en voeg vervolgens de informatie over de batterijcapaciteit toe aan de geretourneerde 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.
Bedankt voor je feedback!