Konstruktør ved arv i OOP i JavaScript
Ved arv kan du overstyre forelderens konstruktør. La oss se på et eksempel. La oss si at vi har følgende forelderklasse:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
La oss si at følgende klasse arver fra forelderklassen:
class Student extends User {
}
La oss si at vi i barneklassen ønsker å utvide konstruktøren, ved å legge til flere parametere:
class Student extends User {
constructor(name, surn, year) {
}
}
I dette tilfellet må vi
på første linje kalle forelderens konstruktør
via super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Kommandoen super er i hovedsak
forelderens konstruktør. Derfor
sender vi inn de nødvendige parameterne:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nå kan vi i barnet skrive studieåret inn i barnets egen egenskap:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
La oss lage en getter for studieåret:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
La klassen Employee arve
fra klassen User fra denne
leksjonen.
Overstyr i klassen Employee
forelderens konstruktør, og legg til
parametere for alder og lønn.
Lag gettere for alder og lønn.