Oorversiering van ouer metodes in OOP in JavaScript

'n Subklas kan 'n metode van die ouer oorversier deur 'n metode met dieselfde naam te skep. Kom ons kyk na 'n voorbeeld. Laat ons die volgende ouerklas hê:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

Kom ons skep 'n metode met dieselfde naam in die subklas:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

Oor die algemeen is die oorversiering van ouer metodes nodig om die gedrag van hierdie metode te verander of aan te vul. Kom ons voeg in ons geval 'n lengtetoets by die naam:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

Kom ons seker maak dat die oorversierde metode presies genoem word. Laat ons eers 'n objek van die subklas skep:

javascriptlet student = new Student;

Laat ons nou ons metode roep, en 'n korrekte waarde daaraan gee:

javascriptstudent.setName('john');

En laat ons nou die metode roep, en gee 'n onkorrekte waarde daaraan. As gevolg sal ons 'n fout in die konsole sien:

javascriptstudent.setName(''); // fout
Задание 1

Maak in die klas User 'n ouderdom-getter en -setter.

Задание 2

Oorversier in die klas Employee die ouderdom-setter en doen 'n toets dat die ouderdom van 18 tot 65 jaar is.