Costruttore nell'ereditarietà in OOP in JavaScript
Nell'ereditarietà è possibile sovrascrivere il costruttore del genitore. Osserviamo con un esempio. Supponiamo di avere la seguente classe genitore:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Supponiamo che dalla classe genitore erediti la seguente classe:
class Student extends User {
}
Supponiamo di voler estendere il costruttore nella classe figlia, aggiungendo parametri aggiuntivi:
class Student extends User {
constructor(name, surn, year) {
}
}
In questo caso dobbiamo obbligatoriamente
richiamare il costruttore del genitore
tramite super come prima istruzione:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Il comando super è essenzialmente
il costruttore del genitore. Pertanto
passiamogli i parametri richiesti:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Ora nel figlio assegniamo l'anno di corso in una proprietà propria del figlio:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Creiamo un getter per l'anno di corso:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Supponiamo che la classe Employee erediti
dalla classe User di questa
lezione.
Sovrascrivi nella classe Employee
il costruttore del genitore, aggiungendovi
un parametro per l'età e lo stipendio.
Crea i getter per l'età e lo stipendio.