JavaScriptのOOPにおける継承時のプライベートメソッド

プライベートメソッドは継承されません。 これは、カプセル化を破らないように意図的に設計されています。 例を見てみましょう。 以下のようなプライベートメソッドを持つ親クラスがあるとします:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.#capeFirst(this.name);
  }
  
  #capeFirst(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

この親クラスを以下の子クラスが継承しているとします:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.surn;
  }
}

子クラスが親のプライベートメソッドを使用しようとすると、 JavaScriptはこれを許可せず、エラーを発生させます:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // エラーになります
  }
}
Задание 1

クラス Employee で親のプライベートメソッドを 使用してみてください。