⊗jsOpIhPrM 34 of 60 menu

Prywatne metody przy dziedziczeniu w OOP w JavaScript

Prywatne metody nie są dziedziczone. Jest to celowo zaprojektowane, aby nie naruszać hermetyzacji. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę nadrzędną z metodą prywatną:

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

Załóżmy, że z klasy nadrzędnej dziedziczy następująca klasa:

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

Załóżmy, że klasa potomna chce skorzystać z prywatnej metody rodzica. JavaScript na to nie pozwoli i zgłosi błąd:

class Student extends User { setSurn(surn) { this.surn = surn; } getSurn() { return this.#capeFirst(this.surn); // będzie błąd } }

Spróbuj w klasie Employee skorzystać z prywatnej metody rodzica.

svpluzchiid