Конструктор дар меросии дар ООП дар JavaScript
Дар вақти мерос гирифтан метавон конструктори волидайнро дигаргун кард. Биёед мисолеро дида бароем. Фарз мекунем, ки мо классҳои волидайни зеринро дорем:
javascriptclass User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Фарз мекунем, ки аз классаи волидайн класси зерин мерос мегирад:
javascriptclass Student extends User {
}
Фарз мекунем, ки мо дар классаи фарзанд мехоҳем конструкторро васеъ кунем, бо изофа кардани параметрҳои иловагӣ:
javascriptclass Student extends User {
constructor(name, surn, year) {
}
}
Дар ин ҳолат, мо бояд албатта дар сатри
аввал конструктори волидайнро бо
воситаи super фаро бихонем:
javascriptclass Student extends User {
constructor(name, surn, year) {
super();
}
}
Дар асл, фармони super конструктори
волидайн мебошад. Аз ин рӯ, параметрҳои
талабшавандаро ба он мегузаронем:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Акнун солҳои таҳсилиро дар фарзанд дар хосияти худои фарзанд сабт мекунем:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Барои солҳои таҳсил геттер месозем:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Фарз мекунем, ки класс Employee аз
класси User аз ин дарс мерос мегирад.
Дар классаи Employee конструктори
волидайнро дигаргун кунед, параметрҳои
синну солиҳо ва маоширо ба он изофа намоед.
Барои синну солиҳо ва маош геттерҳо созед.