⊗jsOpIhCn 33 of 60 menu

Конструктор при наследяване в ООП в 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 конструктора на родителя, като добавите към него параметър за възраст и заплата.

Създайте гетъри за възрастта и заплатата.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне