კონსტრუქტორი მემკვიდრეობითობის დროს OOP-ში 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
მშობელი კლასის კონსტრუქტორი, მასში
პარამეტრების დამატებით ასაკისა და ხელფასისთვის.
შექმენით გეტერები ასაკისა და ხელფასისთვის.