Omskrivning af forældremetoder i OOP i JavaScript

En underklasse kan omskrive en forældremetode ved at oprette en metode med det samme navn. Lad os se et eksempel. Antag, at vi har følgende forældreklasse:

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

Lad os i underklassen oprette en metode med samme navn:

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

Som regel er formålet med at omskrive metoder fra forældreklassen at ændre eller supplere denne metodes adfærd. Lad os i vores tilfælde tilføje en kontrol for navnets længde:

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

Lad os sikre os, at det er den omskrevne metode, der kaldes. Lad os først oprette et objekt af underklassen:

javascriptlet student = new Student;

Lad os nu kalde vores metode og give den en korrekt værdi:

javascriptstudent.setName('john');

Lad os nu kalde metoden og give den en ukorrekt værdi. Som resultat vil vi se en udløst fejl i konsollen:

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

I klassen User skal du lave en getter og setter for alder.

Задание 2

I klassen Employee skal du omskrive setteren for alder og tilføje en kontrol for, at alderen er mellem 18 og 65 år.