Contenu du cours
Maîtrise Avancée de JavaScript
Maîtrise Avancée de JavaScript
Défi : Héritage de Classe avec Extends et Utilisation de Super
Tâche
Vous travaillez sur un système de gestion des transports qui suit différents types de véhicules. Chaque véhicule a une make
, un model
et une year
. Pour les véhicules électriques, vous devez également suivre la batteryCapacity
. Vous utiliserez l'héritage pour étendre une classe générale Vehicle
pour des véhicules électriques spécifiques.
Créez une classe
ElectricVehicle
qui étendVehicle
;Le constructeur de
ElectricVehicle
doit acceptermake
,model
,year
etbatteryCapacity
;Utilisez
super()
pour initialisermake
,model
etyear
dans la classe parente;Ajoutez une méthode
getDetails
àElectricVehicle
qui remplace la méthodeVehicle
degetDetails
. Elle doit appelersuper.getDetails()
et ajouter des informations sur labatteryCapacity
. Le format doit être :"{make} {model} ({year}) with a battery capacity of {batteryCapacity} kWh."
.
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.
Définir une classe
ElectricVehicle
qui étendVehicle
;Dans le constructeur de
ElectricVehicle
, ajouter un paramètrebatteryCapacity
aprèsmake
,model
, etyear
;Utiliser
super(make, model, year)
pour appeler le constructeur de la classe parente et initialisermake
,model
, etyear
;Assigner
batteryCapacity
à une propriété dansElectricVehicle
;Définir une méthode
getDetails
dansElectricVehicle
qui remplace la méthodeVehicle
degetDetails
;À l'intérieur de
getDetails
, utilisersuper.getDetails()
pour obtenir les détails de la classe parente, puis ajouter l'information de la capacité de la batterie à la chaîne de retour.
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.
Merci pour vos commentaires !