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?
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?
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.