O Encapsulamento segue a metáfora da caixa preta.
Você protege o seu objeto de alterações do objeto cliente, porém permite que
o seja implementado uma funcionalidade, por exemplo, a partir de uma subclasse.
A “pegada” principal do encapsulamento, é que o cliente não saiba (ele não precisa saber
mesmo! ) o que está acontecendo com o meu objeto, ele apenas passa dados ( se tiver que passar)
e recebe os resultados, sem saber o como meu objeto faz isto.
Pegamos um cachorro por exemplo:

Você vê o cachorro, o ouve, interage com ele, entretanto você não faz idéia ( alguns fazem ) o
que ocorre dentro do cachorro para que ele também intaraja com você.