Bom dia, boa tarde ou boa noite Lucas! :-D
A diferença é que o private é acessado apenas da classe que o declara.
exm:
Existem uma classe chamada "cliente", (onde foi declarado private);
Dessa classe há duas Subclasse : clienteExclusivo e clientePrime
Obs: essas subclasse "extends" a classe cliente.., são herdeiras.
Quando usamos private apenas as classe que cria pode acessar método ou atributo no caso a classe "cliente".
Se quisermos que toda classe filha também tenha acessa a esses atributo ou método devemos usar o protected, acha o metodo pode ser chamado ou o atributo acessado por classe filhas.
Em resumo o protected é usado para que toda classe filha seja herdeira de seus atributos e metodos de sua classe mãe!
Se tiver ajudado marca ai como resolvido em minha resposta!
Qualquer coisa estou por aqui!