Konštruktor pri dedení v OOP v JavaScripte
Pri dedení je možné predefinovať konštruktor rodiča. Pozrime sa na príklad. Predpokladajme, že máme nasledujúcu rodičovskú triedu:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Predpokladajme, že z rodičovskej triedy dedí nasledujúca trieda:
class Student extends User {
}
Predpokladajme, že chceme v potomkovej triede rozšíriť konštruktor pridaním ďalších parametrov:
class Student extends User {
constructor(name, surn, year) {
}
}
V tomto prípade musíme
v prvom riadku zavolať konštruktor
rodiča pomocou super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Príkaz super je v podstate
konštruktorom rodiča. Preto
do neho odovzdajme požadované parametre:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Teraz v potomkovi zapíšme rok štúdia do vlastnej vlastnosti potomka:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Vytvorme getter pre rok štúdia:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Nech trieda Employee dedí
od triedy User z tejto
lekcie.
Predefinujte v triede Employee
konštruktor rodiča pridaním
parametra s vekom a platom.
Vytvorte gettery pre vek a plat.