Se você for a uma oficina mecânica e trocar o motor do seu carro por um motor elétrico, você ainda vai continuar conseguindo pisar nos pedais, trocar marchas e dirigir o carro. Na prática, um motorista mais relaxado nem precisaria saber que um motor sequer existe. Ele pode nunca abrir o capô.
A idéia com encapsulamento é exatamente essa. Com encapsulamento, você pode alterar o conteúdo interno de uma classe, sem que nenhuma das classes que use sua interface pública sejam afetadas. O que é uma ótima e bem-vinda limitação das consequências dessa alteração.
O que acontece num código não encapsulado? Você altera uma classe, e outra classe nada a ver, em um ponto completamente afastado do código dá erro. Triste, mas tem gente que programa assim.
Um carro não encapsulado exigiria que você, por exemplo, pressionasse a alavanca de aceleração do seu motor diretamente. E a posição dessa alavanca variaria de motor para motor. Uma troca, como descrita acima, alteraria a forma com que o usário perceberia o carro. Assim, a modificação mecânica teve suas conseqüência ampliada, afetando a pessoa que não gostaríamos que afetasse: o motorista.