Opa fala Matheus, por aqui segue deploy a todo vapor kkkkkk, pode parar não, mas mano, nao tem um melhor que o outro, a pergunta é qual devo usar em situações diferentes, vc já deve saber a diferença né? mas vou reforçar....
private: Quando um membro é declarado como private, ele só pode ser acessado dentro da própria classe. Isso significa que nenhum outro código fora da classe pode acessar diretamente esse membro.
protected: Quando um membro é declarado como protected, ele pode ser acessado por classes no mesmo pacote ou por subclasses (mesmo que estejam em pacotes diferentes). Isso significa que membros protegidos têm um nível de visibilidade mais amplo do que membros privados.
mas no exemplo que vc me deu Conta, vc quer que apenas essa classe tenha acesso né? Imagina se vc tiver uma conta com PROTECTED e depois tenha uma classe Funcionario, imagina o caos que seria sua classe funcionario ter acesso todos os atributos e metodos da classe Conta por causa de estar com o PROTECTED? Pra ser bem sincero, tenho 10 anos no mercado de programação e usei muitas poucas vezes o protected man