2
respostas

Enunciado da resposta A está incorreto

Olá,

Mudar o modificador de acesso da propriedade nome de private para protected é uma solução garantindo apenas que classes filhas tenham acesso à propriedade.

Ao mudar para protected, o código continua não compilando (pois o acesso está sendo feito de fora da classe Filha), portanto não é uma solução.

2 respostas

Olá, Pedro!

Acredito que está é a função do protected, somente as classes Filhas podem ter este acesso às propriedades da classe pai. Qualquer acesso de fora da da classe filha ou pai ele precisa estar como public.

Oi Iago,

Sim, essa é a função do protected. Porém o enunciado A (que é considerado "Alternativa correta!") afirma que se alterar para protected o código fica correto, o que não é verdade.

Ainda haveria erro na linha console.log(filha.nome);

class Pai {
    private nome = '';
}

class Filha extends Pai {
    protected nome = ''; // linha alterada, como sugerido
}

const filha = new Filha();
console.log(filha.nome);  // <-- erro aqui

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software