Konstruktor při dědění v OOP v JavaScriptu
Při dědění lze přepsat konstruktor rodiče. Podívejme se na příklad. Předpokládejme, že máme následující třídu rodiče:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Předpokládejme, že z rodičovské třídy dědí následující třída:
class Student extends User {
}
Předpokládejme, že chceme v potomní třídě rozšířit konstruktor přidáním dodatečných parametrů:
class Student extends User {
constructor(name, surn, year) {
}
}
V tomto případě musíme
jako první řádek zavolat konstruktor
rodiče pomocí super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Příkaz super je v podstatě
konstruktorem rodiče. Proto
do něj předejme požadované parametry:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nyní v potomkovi zapišme rok studia do vlastní vlastnosti potomka:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Vytvořme getter pro rok studia:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Předpokládejme, že třída Employee dědí
z třídy User z této
lekce.
Přepište v třídě Employee
konstruktor rodiče přidáním
parametru s věkem a platem.
Vytvořte gettery pro věk a plat.