No hay mucha diferencia entre un proceso y un objeto...
digamos que un objeto es algo que puedes reemplazar por unos similar, que tenga la misma funcionalidad(mismos metodos/funciones, implementados de manera diferente generalmente)...
pero tu no sabes como estan implemententados esos metodos, ni que datos maneja internamente, solo puedes "ver" las funciones(metodos) y los parametros que estas reciben...
imagina que creeas algo que muestra un mensaje de error, al cual le pasas la posicion y el texto, y luego cambias este por uno similar que hizo otra persona que tambien recibe la posicion y el texto...
reutilizabilidad...
encapsulamiento, es cuando no puedes ver o acceder a los datos internos y algunas funciones internas desde afuera...
en el ejemplo anterior seria por ejemplo una funcion que se encargue de mostrar el texto, tu no puedes mostrar solo el texto, pero si pedirle que ponga en tal posicion el cuadro con tal texto...
herencia es crear por ejemplo otro objeto en base a otro, en el ejemplo de arriba seria armar otro objeto que cree un mensaje de error, lo cual te obliga a colocar lel metodo que recibe la posicion y el texto, ademas tu puedes agregar tus propias funciones, variables y demas...