Propiedades privadas en la herencia de POO en JavaScript

Las propiedades privadas no se heredan. Pero el descendiente puede manipularlas a través de los métodos públicos del padre. Veámoslo en la práctica. Supongamos que tenemos la siguiente clase padre con una propiedad privada y su getter y setter:

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

Supongamos que de la clase padre hereda la siguiente clase hija:

javascriptclass Student extends User {
  
}

Creemos un objeto de la clase hija:

javascriptlet student = new Student;

Utilicemos el método del padre para asignar su propiedad privada:

javascriptstudent.setName('john');

Utilicemos el método del padre para leer su propiedad privada:

javascriptlet name = student.getName();
console.log(name);
Задание 1

Tenemos la siguiente clase padre:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
  
  setSurn(surn) {
    this.#surn = surn;
  }
  getSurn() {
    return this.#surn;
  }
}

Crea la clase Employee, que herede de este padre.

Задание 2

Crea un objeto de la clase Employee y llama a los setters y getters heredados.

Задание 3

En la clase Employee crea el siguiente método:

javascriptgetFull() {
  return this.#name + ' ' + this.#surn;
}

Comprueba que el código del método genera un error.