SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Abstracción
Omar Emanuel De Lara Juárez.
Edgar Eduardo Renovato Contreras
08/07/2015
Abstracción en Programación Orientada a Objetos
Abstracción es un término del mundo real que podemos aplicar tal cual lo
entendemos en el mundo de la Programación Orientada a Objetos. Algo abstracto
es algo que está en el universo de las ideas, los pensamientos, pero que no se
puede concretar en algo material, que se pueda tocar.
Abstracción en el mundo real
La programación orientada a objetos sabemos que, de alguna manera, trata de
"modelizar" los elementos del mundo real. En el mundo en el que vivimos existe
un universo de objetos que colaboran entre sí para realizar tareas de los sistemas.
Llevado al entorno de la programación, también debemos programar una serie de
clases a partir de las cuales se puedan instanciar objetos que colaboran entre sí
para la resolución de problemas. Si asumimos esto, a la vista de las situaciones
que ocurren en el mundo real, podremos entender la abstracción.
En los animales existen propiedades y métodos que pueden ser comunes a todos
los animales en general. Los animales podrán tener un nombre o una edad,
determinadas dimensiones o podrán desempeñar acciones como morir. Lo que
nos debe quedar claro es que no deberíamos poder instanciar un animal como tal.
¿Cómo nace un animal en concreto?, ¿cómo se alimenta? Para responder a esas
preguntas necesitamos tener especímenes más concretos. Sí que sé cómo nace o
cómo se alimenta una hormiga, o un gorrión, pero no lo puedo saber de un animal
genérico, porque puede hacerlo de muchas maneras distintas.
Herencia y abstracción
Si entendemos el concepto de herencia podremos entender mejor la abstracción y
cómo se implementa.
Recuerda nuestro ejemplo: Tengo animales. Hemos acordado que no puedo tener
un animal concreto instanciado en un sistema. Si acaso tendré instancias de
perros, saltamontes o lagartijas. Pues bien, en los esquemas de herencia este
caso nos puede surgir muy habitualmente.
Aunque mi sistema no pueda crear animales como tal, tener definidas esas
cuestiones comunes a todos los animales me resulta útil para no tener que
programarlas de nuevo en todos los tipos de animales que puedan existir.
Simplemente las heredaré en las clases hijas, de modo que estarán presentes sin
tener que volver a programar todas esas cosas comunes.
Sin embargo hay cosas de los animales que no podré implementar todavía.
Atributos como el número de patas, el alcance de la visión, se implementarán a
futuro en los tipos de animales que las necesiten, pero fijémonos en las acciones o
métodos. Por ejemplo nacer, alimentarse, etc. No sé cómo va a nacer un animal,
pero sé que todos los animales del mundo nacen de algún modo (unos nacen de
huevos, otros estaban en la barriga de las hembras y nacen a consecuencia de un
parto, etc.)
En estos casos nos puede ser útil definir como métodos abstractos en la clase
"animal" esos métodos que van a estar presentes en todos los animales, aunque
no seamos capaces de implementarlos todavía.
public abstract function nacer();
Esto quiere decir que todos los animales del mundo heredarán un método
abstracto llamado nacer. En las clases concretas que hereden de animal y donde
ya sepamos cómo nace tal animal, por ejemplo, la gallina, podemos implementar
ese método, para que deje de ser abstracto.
public function nacer(){
//se rompe el huevo y nace el pollito que más adelante será una hermosa
gallina
}
Hasta ahora sabemos que hay clases que tienen métodos abstractos, que no
somos capaces de implementar todavía y clases en las que se heredan métodos
abstractos y en las que seremos capaces de implementarlos.
Polimorfismo y abstracción
Creo que si no se examina de cerca la abstracción bajo el prisma del polimorfismo
no se puede entender bien la verdadera utilidad de hacer clases abstractas.
Es cierto que el concepto se puede quedar un poco en "la abstracción" pero
cuando practiques un poco te darás cuenta de la esencia de las clases abstractas
y entenderás lo útil y necesario que es declarar métodos abstractos para poder
implementar el polimorfismo.
Conclusión.
La abstracción expresa las características esenciales de un objeto, las cuales
distinguen al objeto de los demás, así podemos diferenciar las características de
un objeto. Es necesario para reconocer las propiedades que identifican a los
objetos de otros y las funciones que realiza cada una de sus características.
Definición propia: La abstracción es un complemento de la programación orientado
a objetos la cual permite diferenciar las principales características de un objeto.

Más contenido relacionado

Similar a Abstracción (20)

Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Abstracción
AbstracciónAbstracción
Abstracción
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Abstracción.docs
Abstracción.docsAbstracción.docs
Abstracción.docs
 
Abstracción 14k
Abstracción 14kAbstracción 14k
Abstracción 14k
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Resumen abstraccion
Resumen abstraccionResumen abstraccion
Resumen abstraccion
 
Abstraccion en programacion orientada en objetos
Abstraccion en programacion orientada en objetosAbstraccion en programacion orientada en objetos
Abstraccion en programacion orientada en objetos
 
Desarrollocognitivo 091022192504-phpapp01
Desarrollocognitivo 091022192504-phpapp01Desarrollocognitivo 091022192504-phpapp01
Desarrollocognitivo 091022192504-phpapp01
 
Diapositiva trabajo
Diapositiva trabajoDiapositiva trabajo
Diapositiva trabajo
 
Resumen Tema 1
Resumen Tema 1Resumen Tema 1
Resumen Tema 1
 
Clase02
Clase02Clase02
Clase02
 
Enfoque de la gestalt
Enfoque de la gestaltEnfoque de la gestalt
Enfoque de la gestalt
 
piaget segunda parte
piaget segunda partepiaget segunda parte
piaget segunda parte
 
Lógica
Lógica Lógica
Lógica
 
Actividad 6: Enfoque de la Gestalt
Actividad 6: Enfoque de la GestaltActividad 6: Enfoque de la Gestalt
Actividad 6: Enfoque de la Gestalt
 
Lógica
Lógica Lógica
Lógica
 
Las estructuras del pensamiento y el aprendizaje 1994
Las estructuras del pensamiento y el aprendizaje 1994Las estructuras del pensamiento y el aprendizaje 1994
Las estructuras del pensamiento y el aprendizaje 1994
 
La gran herencia
La gran herenciaLa gran herencia
La gran herencia
 
Creatividad
CreatividadCreatividad
Creatividad
 

Más de Edward Contreras (20)

Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentes
 
Aplicación de las telecomunicaciones
Aplicación de las telecomunicacionesAplicación de las telecomunicaciones
Aplicación de las telecomunicaciones
 
Interfaces
InterfacesInterfaces
Interfaces
 
Programación de aplicaciones
Programación de aplicacionesProgramación de aplicaciones
Programación de aplicaciones
 
Normas
NormasNormas
Normas
 
Antenas
AntenasAntenas
Antenas
 
Datos
DatosDatos
Datos
 
Puntos de funcion
Puntos de funcionPuntos de funcion
Puntos de funcion
 
Formato
FormatoFormato
Formato
 
Edgar
EdgarEdgar
Edgar
 
Mapa mental seguridad
Mapa mental seguridadMapa mental seguridad
Mapa mental seguridad
 
Preguntas
PreguntasPreguntas
Preguntas
 
Manual edgar
Manual edgarManual edgar
Manual edgar
 
Manual edgar
Manual edgarManual edgar
Manual edgar
 
Vacations
VacationsVacations
Vacations
 
Weather
WeatherWeather
Weather
 
Dialogo
DialogoDialogo
Dialogo
 
Dialogo
DialogoDialogo
Dialogo
 
Conversation
ConversationConversation
Conversation
 
Ingles
InglesIngles
Ingles
 

Abstracción

  • 1. Abstracción Omar Emanuel De Lara Juárez. Edgar Eduardo Renovato Contreras 08/07/2015
  • 2. Abstracción en Programación Orientada a Objetos Abstracción es un término del mundo real que podemos aplicar tal cual lo entendemos en el mundo de la Programación Orientada a Objetos. Algo abstracto es algo que está en el universo de las ideas, los pensamientos, pero que no se puede concretar en algo material, que se pueda tocar. Abstracción en el mundo real La programación orientada a objetos sabemos que, de alguna manera, trata de "modelizar" los elementos del mundo real. En el mundo en el que vivimos existe un universo de objetos que colaboran entre sí para realizar tareas de los sistemas. Llevado al entorno de la programación, también debemos programar una serie de clases a partir de las cuales se puedan instanciar objetos que colaboran entre sí para la resolución de problemas. Si asumimos esto, a la vista de las situaciones que ocurren en el mundo real, podremos entender la abstracción. En los animales existen propiedades y métodos que pueden ser comunes a todos los animales en general. Los animales podrán tener un nombre o una edad, determinadas dimensiones o podrán desempeñar acciones como morir. Lo que nos debe quedar claro es que no deberíamos poder instanciar un animal como tal. ¿Cómo nace un animal en concreto?, ¿cómo se alimenta? Para responder a esas preguntas necesitamos tener especímenes más concretos. Sí que sé cómo nace o cómo se alimenta una hormiga, o un gorrión, pero no lo puedo saber de un animal genérico, porque puede hacerlo de muchas maneras distintas.
  • 3. Herencia y abstracción Si entendemos el concepto de herencia podremos entender mejor la abstracción y cómo se implementa. Recuerda nuestro ejemplo: Tengo animales. Hemos acordado que no puedo tener un animal concreto instanciado en un sistema. Si acaso tendré instancias de perros, saltamontes o lagartijas. Pues bien, en los esquemas de herencia este caso nos puede surgir muy habitualmente. Aunque mi sistema no pueda crear animales como tal, tener definidas esas cuestiones comunes a todos los animales me resulta útil para no tener que programarlas de nuevo en todos los tipos de animales que puedan existir. Simplemente las heredaré en las clases hijas, de modo que estarán presentes sin tener que volver a programar todas esas cosas comunes. Sin embargo hay cosas de los animales que no podré implementar todavía. Atributos como el número de patas, el alcance de la visión, se implementarán a futuro en los tipos de animales que las necesiten, pero fijémonos en las acciones o métodos. Por ejemplo nacer, alimentarse, etc. No sé cómo va a nacer un animal, pero sé que todos los animales del mundo nacen de algún modo (unos nacen de huevos, otros estaban en la barriga de las hembras y nacen a consecuencia de un parto, etc.) En estos casos nos puede ser útil definir como métodos abstractos en la clase "animal" esos métodos que van a estar presentes en todos los animales, aunque no seamos capaces de implementarlos todavía. public abstract function nacer(); Esto quiere decir que todos los animales del mundo heredarán un método abstracto llamado nacer. En las clases concretas que hereden de animal y donde ya sepamos cómo nace tal animal, por ejemplo, la gallina, podemos implementar ese método, para que deje de ser abstracto. public function nacer(){
  • 4. //se rompe el huevo y nace el pollito que más adelante será una hermosa gallina } Hasta ahora sabemos que hay clases que tienen métodos abstractos, que no somos capaces de implementar todavía y clases en las que se heredan métodos abstractos y en las que seremos capaces de implementarlos. Polimorfismo y abstracción Creo que si no se examina de cerca la abstracción bajo el prisma del polimorfismo no se puede entender bien la verdadera utilidad de hacer clases abstractas. Es cierto que el concepto se puede quedar un poco en "la abstracción" pero cuando practiques un poco te darás cuenta de la esencia de las clases abstractas y entenderás lo útil y necesario que es declarar métodos abstractos para poder implementar el polimorfismo.
  • 5. Conclusión. La abstracción expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás, así podemos diferenciar las características de un objeto. Es necesario para reconocer las propiedades que identifican a los objetos de otros y las funciones que realiza cada una de sus características. Definición propia: La abstracción es un complemento de la programación orientado a objetos la cual permite diferenciar las principales características de un objeto.