Konstruktori perinnässä OOP:ssa JavaScriptissä

Perinnässä voit ylikirjoittaa vanhemman konstruktorin. Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava vanhemman luokka:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  getName() {
    return this.name;
  }
  getSurn() {
    return this.surn;
  }
}

Oletetaan, että vanhemman luokan perii seuraava luokka:

javascriptclass Student extends User {
  
}

Oletetaan, että haluamme jälkeläisluokassa laajentaa konstruktoria lisäämällä siihen lisäparametreja:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    
  }
}

Tässä tapauksessa meidän on pakko ensimmäisellä rivillä kutsua konstruktoria vanhemmalle komennolla super:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super();
  }
}

Komento super on olennaisesti vanhemman konstruktori. Siksi lähetetään siihen tarvittavat parametrit:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
  }
}

Nyt jälkeläisessä opetusvuosi kirjoitetaan jälkeläisen omaan ominaisuuteen:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
}

Tehdään getteri opetusvuodelle:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
  
  getYear() {
    return this.year;
  }
}
Задание 1

Oletetaan, että luokka Employee perii tämän oppitunnin luokasta User.

Задание 2

Ylikirjoita luokassa Employee vanhemman konstruktori lisäämällä siihen parametrin iälle ja palkalle.

Задание 3

Tee getterit iälle ja palkalle.