Propriedades privadas na herança em POO em JavaScript
Propriedades privadas não são herdadas. Mas o descendente pode manipulá-las através de métodos públicos do pai. Vamos ver na prática. Suponha que temos a seguinte classe-pai com uma propriedade privada e seu getter e setter:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Suponha que a seguinte classe descendente herda do pai:
class Student extends User {
}
Vamos criar um objeto descendente:
let student = new Student;
Vamos usar o método do pai para definir sua propriedade privada:
student.setName('john');
Vamos usar o método do pai para ler sua propriedade privada:
let name = student.getName();
console.log(name);
É dada a seguinte classe-pai:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Faça a classe Employee
,
que herdará
deste pai.
Crie um objeto da classe Employee
e chame os setters e getters
herdados.
Na classe Employee
, faça
o seguinte método:
getFull() {
return this.#name + ' ' + this.#surn;
}
Certifique-se de que o código do método levará a um erro.