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