Constructeur lors de l'héritage en POO en JavaScript
Lors de l'héritage, il est possible de redéfinir le constructeur du parent. Regardons un exemple. Supposons que nous ayons la classe parente suivante :
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Supposons que la classe suivante hérite de la classe parente :
class Student extends User {
}
Supposons que nous voulions dans la classe enfant étendre le constructeur, en y ajoutant des paramètres supplémentaires :
class Student extends User {
constructor(name, surn, year) {
}
}
Dans ce cas, nous devons impérativement
appeler en première ligne le constructeur
du parent via super :
class Student extends User {
constructor(name, surn, year) {
super();
}
}
La commande super est essentiellement
le constructeur du parent. Par conséquent,
passons-lui les paramètres requis :
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Maintenant, dans l'enfant, l'année d'étude sera enregistrée dans sa propre propriété de l'enfant :
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Créons un getter pour l'année d'étude :
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Supposons que la classe Employee hérite
de la classe User de cette
leçon.
Redéfinissez dans la classe Employee
le constructeur parent, en y ajoutant
un paramètre pour l'âge et le salaire.
Créez des getters pour l'âge et le salaire.