Sobre protected

Construtores não são herdados… então pq é permitido o modificador protected para construtores?

protected tem visibilidade dentro de pacote tbm… e não esqueça do super

Construtores têm modificadores de acesso porque podem ser acessados de diferentes escopos e não porque podem existir em diferentes escopos. ( o que não podem, já que não são herdados)

O modificador filtra quem pode acessar e não onde o membro pode existir.

Não pense só na herança. Pense também na hora de usar esse construtor.
Na hora de usar, um construtor protected só poderá chamado nos locais onde o protected é visível. Ou seja, nas classes filhas (incluindo através do super) ou em classes do mesmo pacote.

O mesmo vale para um construtor private. Ele só pode ser chamado de dentro dos métodos da própria classe. Isso pode até impedir totalmente que objetos de uma classe (que só tenha métodos estáticos, por exemplo) sejam instanciados.

“protected”, “public”, “private” são modificadores de acesso (visibilidade), não modificadores de herança, embora dependam da parte de herança.

Vou responder com duas perguntas:

Vc não pode invocar um construtor da classe pai?

Se eu quiser que somente classes filhas acessem esse construtor?