Sobre o uso de herança, saiba que ela só faz sentido quando você quer dizer que determinada classe É de determinado tipo, utilizar herança somente para “enxergar” métodos da superclasse é um equívoco, neste caso, o correto seria você ter uma instância da classe da qual deseja acessar os métodos.
Sobre o protected, relaxa que é uma dúvida bastante comum até.
Em java temos 4 modificadores de visibilidade: public, protected, default e private.
Antes que questione sobre o default (que também é chamado de friendly por alguns autores) ele é implícito quando o membro da classe não for public, protected nem private.
Esses modificadores diferenciam o escopo de visibilidade dos membros da classe, conforme o quadro abaixo:
+-----------+---------+-----------+--------+--------+
| | global | subclasse | pacote | classe |
+-----------+---------+-----------+--------+--------+
| private | | | | X |
+-----------+---------+-----------+--------+--------+
| default | | | X | X |
+-----------+---------+-----------+--------+--------+
| protected | | X | X | X |
+-----------+---------+-----------+--------+--------+
| public | X | X | X | X |
+-----------+---------+-----------+--------+--------+
Explicando o quadro acima:
private só é acessível dentro da classe que declara.
default é acessível para a classe que declara e outras classes ou subclasses dentro do mesmo pacote.
protected é acessível para a classe que declara, para outras classes ou subclasses dentro do mesmo pacote e subclasses em pacotes diferentes.
public é acessível para todas as classes, subclasses, no mesmo pacote ou em pacotes diferentes.