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