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 классада ота-онанинг
конструкторини кайта аникланг, унга
ёш ва маош параметрларини кушиш билан.
Ёш ва маош учун геттерлар яратинг.