Κλήση υπερκαλυμμένης μεθόδου στην ΑΑΠ στο JavaScript

Κατά την υπερκάλυψη, ο απόγονος χάνει την πρόσβαση στην υπερκαλυμμένη μέθοδο του γονέα. Ωστόσο, είναι ακόμα δυνατόν να αποκτήσει πρόσβαση σε αυτήν. Αυτό γίνεται χρησιμοποιώντας τη λέξη-κλειδί super, που δείχνει towards την γονική κλάση.

Ας δούμε ένα παράδειγμα όπου μπορεί να χρειαστεί πρόσβαση στη γονική μέθοδο. Ας υποθέσουμε ότι έχουμε την ακόλουθη γονική κλάση:

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

Ας υποθέσουμε ότι στην κλάση-απόγονο υπερκαλύψαμε τη μέθοδο του γονέα:

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

Μπορεί να παρατηρηθεί ότι στην υπερκαλυμμένη μέθοδο, όταν ικανοποιείται η συνθήκη, ουσιαστικά εκτελείται ο κώδικας της γονικής μεθόδου. Αποτελεί λοιπόν αχρείαστη διπλοτυπία κώδικα.

Μπορούμε να την αποφύγουμε, εάν καλέσουμε τη μέθοδο του γονέα. Ας το κάνουμε:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // μέθοδος γονέα
    } else {
      throw new Error('student name error');
    }
  }
}
Задание 1

Δίνεται ο ακόλουθος κώδικας:

javascriptclass User {
  setAge(age) {
    if (age >= 0) {
      this.age = age;
    } else {
      throw new Error('need age more 0');
    }
  }
}
class Employee {
  setAge(age) {
    if (age <= 120) {
      if (age >= 0) {
        this.age = age;
      } else {
        throw new Error('need age more 0');
      }
    } else {
      throw new Error('need age less 120');
    }
  }
}

Στην κλάση Employee διορθώστε απλοποιήστε τον setter ηλικίας, χρησιμοποιώντας την αρχική μέθοδο του γονέα.