Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

protected vs public

Porque o Java permite que a classe Gerente tenha acesso acesso público a atributos e métodos protected's definidos na classe Funcionario?

R: Pq são do mesmo pacote.

Ok, mas teoricamente não deveriam ter acesso somente as classes filhas?

3 respostas

Oi Gabriel

O modificador de acesso Protected permite acesso via herança e para as classes do mesmo package.

Sim, sim, mas existe uma explicação mais técnica para isso? É uma limitação, ou foi pensando assim por um motivo específico?

solução

Oi Gabriel, tudo bem?

O modificador de acesso Protected foi pensado para ser assim mesmo, se formos observar todos os modificadores, temos:

1. Public: Disponível na classe, no pacote, nas subclasses e em pacotes diferentes.

2. Protected: Disponível na classe, no pacote e nas subclasses.

3. Default (vazio): Disponível na classe e no pacote.

4. Private: Disponível apenas na classe.

Basicamente, temos um modificador de acesso diferente para cada contexto. :)

Espero ter ajudado, se ainda ficou alguma coisa que não encaixou muito bem é só avisar!

Bons estudos!!