კონსტრუქტორი მემკვიდრეობითობის დროს OOP-ში 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;
  }
}
Задание 1

დავუშვათ, კლასი Employee მემკვიდრეობით მიიღება ამ გაკვეთილის კლასიდან User.

Задание 2

გადააფარეთ კლასში Employee მშობელი კლასის კონსტრუქტორი, მასში პარამეტრების დამატებით ასაკისა და ხელფასისთვის.

Задание 3

შექმენით გეტერები ასაკისა და ხელფასისთვის.