Konstruktori perinnässä OOP:ssa JavaScriptissä
Perinnässä voit ylikirjoittaa vanhemman konstruktorin. Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava vanhemman luokka:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Oletetaan, että vanhemman luokan perii seuraava luokka:
class Student extends User {
}
Oletetaan, että haluamme jälkeläisluokassa laajentaa konstruktoria lisäämällä siihen lisäparametreja:
class Student extends User {
constructor(name, surn, year) {
}
}
Tässä tapauksessa meidän on pakko
ensimmäisellä rivillä kutsua konstruktoria
vanhemmalle komennolla super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Komento super on olennaisesti
vanhemman konstruktori. Siksi
lähetetään siihen tarvittavat parametrit:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nyt jälkeläisessä opetusvuosi kirjoitetaan jälkeläisen omaan ominaisuuteen:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Tehdään getteri opetusvuodelle:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Oletetaan, että luokka Employee perii
tämän oppitunnin luokasta User.
Ylikirjoita luokassa Employee
vanhemman konstruktori lisäämällä siihen
parametrin iälle ja palkalle.
Tee getterit iälle ja palkalle.