Bom dia, Celso! Como vai?
Vamos lá! Respondendo cada uma de suas perguntas separadamente para facilitar.
Não seria correto afirmar que "protected" é visível para o "pacote" ?
Em parte! O protected
dá visibilidade para todas as classes que estejam no mesmo pacote e para todas as classes filhas ( independentemente do pacote que estejam ).
No método getBonificacao(), entre utilizar o "getSalario()" ou utilizar o "super.salario", qual seria a melhor prática a ser adotada? Ou qual a mais utilizada no mercado?
Partindo do pressuposto que normalmente não se coloca nenhuma lógica no getter, então poderia ser feito de qualquer uma das formas. Não há uma convenção nem regra que defina isso. No final das contas ficará a cargo da equipe onde vc está inserido definir um padrão a ser utilizado.
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!