1
resposta

Protected ou private?

Eu não consegui entender o por que de o professor colocar o atributo como protected e não mantê-lo como privado. Por favor, poderiam me ajudar?

1 resposta

Olá Rebeca tudo bom.

O protected significa " publico apenas para as classes filhas ", ou seja, com o protected podemos acessar os atributos da classe mãe na classe filha, como no exemplo utilizado pelo instrutor:

public double getBonificacao() {

    return super.salario;
}

Note que mesmo sendo na classe filha podemos acessar o atributo "salario", que pertence a classe mãe, isso se deve por conta do protected, mas temos que refenciar a classe mãe atraves do " super. "

Porem é mais comum deixarmos o atributo como privado, e utilizarmos os próprios métodos da classe mãe, para acessar os atributos, como neste exemplo:

public double getBonificacao() {

    return super.getSalario();
}

Neste exemplo assim como no primeiro, estamos acessando o conteúdo presente em salario, porem o atributo permanece privado, mas conseguimos acessá-lo através do método "getSalario" que pertence a classe mãe, porem desta forma mantemos os atributos como privado.