Konstruktor ved arv i OOP i JavaScript
Ved arv kan man overskrive forælderens konstruktor. Lad os se på et eksempel. Lad os sige, at vi har følgende forældreklasse:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Lad den følgende klasse arve fra forældreklassen:
class Student extends User {
}
Lad os sige, at vi i barnklassen vil udvide konstruktøren ved at tilføje yderligere parametre til den:
class Student extends User {
constructor(name, surn, year) {
}
}
I dette tilfælde er vi obligatorisk nødt til
at kalde forælderens konstruktor
via super på første linje:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Kommandoen super er i bund og grund
forælderens konstruktor. Derfor
lad os videregive de nødvendige parametre til den:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nu i barnet skal studieåret skrives i barnets egen egenskab:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Lad os lave en getter for studieåret:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Lad klassen Employee arve
fra klassen User fra denne
lektion.
Overskriv i klassen Employee
forælderens konstruktor ved at tilføje
en parameter med alder og løn.
Lav gettere for alder og lon.