Cuando hablamos de la programación orientada a objetos, existen muchos conceptos que resultan difíciles de entender en este video hablaremos de la abstracción.
Y para ello pongamos un ejemplo sencillo, vamos a analizar a estas 2 personas y tratemos de definir qué propiedades las distinguen de entre las demas.
A primera impresión podemos ver qué tanto la chica como el chico son personas atractivas, ademas portan atuendos de moda y también podemos mencionar que son delgados, pero…
¿Estas características nos sirven para diferenciar una persona de la otra?
¿Es posible clasificar a estas personas con las características respectivas?
Desafortunadamente la programación orientada a objetos no funciona así, pero para eso existe la abstracción.
La abstracción mis amigos, es el proceso por el cual se descarta toda aquella información que no resulta relevante en un contexto en particular enfatizando algunos de los detalles o propiedades de los objetos.
La abstracción depende principalmente del interés del observador, permitiendo abstracciones muy diferentes de la misma realidad, debido a esto algunos la clasifican un tanto subjetiva.
La abstracción consiste en captar las características y funcionalidades que un objeto desempeña y estos son representados en clases por medio de atributos y métodos de dicha clase.
Volvamos al ejemplo, ¿Qué características podemos abstraer de la clase persona? O también podríamos preguntarnos, ¿Qué características semejantes tienen todas las personas?, no importando si son 1, 10 ó 1 millón de personas, nosotros podemos abstraer las características y funcionalidades que en un momento en particular nos sirven para darle solución a un problema, para este caso se definen como características:
- El nombre
- Apellidos
- Edad
- Dirección
Y como funcionalidades:
- Hablar
- Comer
- Dormir
- Trabajar.
A esto se le llama ABSTRACCIÓN.
En general un programa no es más que una descripción abstracta de un procedimiento o fenómeno que existe o sucede en el mundo real.La abstracción es crucial para comprender el complejo mundo que nos rodea, es una herramienta muy potente para tratar la complejidad de las clases y los objetos.