SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
U N I V E R S I D A D T E C N O L Ó G I C A D E L E S T A D O D E Z A C A T E C A S
U N I D A D A C A D E M I C A D E P I N O S
T E C N O L O G Í A S D E L A I N F O R M A C I Ó N Y C O M U N I C A C I Ó N
TEMA:
ABSTRACCIÓN
UNIDAD:
UNIDAD II. “CONCEPTOS AVANZADOS DE LA POO”
MATERIA:
PROGRAMACIÓN DE APLICACIONES
PROFESOR:
ISC. OMAR EMMANUEL LARA JUÁREZ
ALUMNO:
DANIEL TORRES SALAS
CARRERA:
INGENIERIA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
GRADO Y GRUPO
9° CUATRIMESTRE “A”
PINOS, ZACATECAS. JULIO DEL 2015
Abstracción en 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.
Pues bien, una clase abstracta es aquella sobre la que no podemos crear
especímenes concretos, en la jerga de POO es aquella sobre la que no podemos
instanciar objetos.
Abstracción en el 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.
En Herencia en Programación Orientada a Objetos se puede definir jerarquías de
clasificación: los animales y dependiendo de éstos tenemos mamíferos,
vertebrados, invertebrados. Dentro de los mamíferos tenemos vacas, perros…
Animal puede ser desde una hormiga a un delfín o un humano. Si defines animal
tienes que usar palabras muy genéricas, que abarquen a todos los animales
posibles que puedan existir en el mundo. Por ello no puedes decir que animales son
aquellos que nacen de huevos, o después de un periodo de gestación en la
placenta.
Si lo definimos con palabras no podemos llegar a mucho detalle, porque hay muchos
animales distintos con características muy diferentes. Hay características que se
quedan en el aire y no se pueden definir por completo cuando pensamos en el
concepto de animal "genérico".
Para acabar ¿en el mundo real hay un "animal" como tal? No, ni tan siquiera hay un
"mamífero". Lo que tenemos son especímenes de "perro" o "vaca", "hormiga",
"cocodrilo", "gorrión" pero no "animal" en plan general. Es cierto que un perro es un
animal, pero el concepto final, el ejemplar, es de perro y no animal.
Por tanto "animal", en términos del lenguaje común, podemos decir que es un
concepto genérico, pero no una concreción. En términos de POO decimos que es
un concepto abstracto, que implementaremos por medio de una clase abstracta. No
instanciaremos animales como tal en el mundo, sino que instanciaremos
especímenes de un tipo de animal concreto.
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.
En la clase "animal" puedo tener determinadas propiedades y acciones
implementadas. Por ejemplo, todos los animales pueden tener un nombre, o una
edad (ya sean segundos, días o años de edad). También es posible que pueda
definir diversas acciones de una vez para todos los animales de una jerarquía de
herencia, por ejemplo, la acción de morir, pues todos morimos igual (simplemente
dejamos de existir aunque aquí dependiendo de las creencias de cada uno esto
pueda ser discutible).
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 }
"Una clase abstracta es aquella en la que hay definidos métodos abstractos, sobre
la que no podremos instanciar objetos" Además, en un esquema de herencia, "Si
heredamos de una clase abstracta métodos abstractos, tampoco se podrán
instanciar objetos de las clases hijas y tendrán que definirse como abstractas, a no
ser que implementemos todos y cada uno de los métodos que se habían declarado
como abstractos en la clase padre".
Polimorfismo y Abstracción
Cuando hablamos de polimorfismo explicamos que es una relajación del sistema de
tipos por la cual éramos capaces de aceptar objetos de un tipo y de todas las clases
hijas. Por ejemplo, tengo la clase "PoligonoRegular". Sé que los polígonos regulares
voy a querer conocer su área, pero para saber su área necesito conocer el número
de lados que tiene. Entonces la clase "PoligonoRegular" tendrá un método abstracto
"dameArea()". Luego, al definir la clase "cuadrado", o el "pentágono", etc. podremos
implementar tal método, con lo que dejará de ser abstracto.
Ahora piensa en esto. Gracias a que fue definido el método abstracto "dameArea()"
en la clase padre, tengo clara una cosa: cuando trabajo con elementos de la clase
"poligonoRegular", sé que a todos los polígonos regulares que pueda recibir les
puedo pedir que me devuelvan su área.
Ahí está la potencia del polimorfismo, recibir un objeto que pertenece a una jerarquía
de clasificación y saber que puedo pedirle determinadas cosas. Quizás en la clase
padre no pudieron implementarse esos comportamientos, porque no sabíamos el
código necesario para ello, pero al menos se declararon que iban a poder realizarse
en el futuro en clases hijas. Eso me permite, en un esquema de polimorfismo, que
pueda estar seguro que todos los objetos que reciba puedan responder a acciones
determinadas, pues en las clases hijas habrán sido definidas necesariamente (si no
se definen deberían declararse las clases como abstractas y en ese caso es
imposible que me manden objetos de esa clase).
Conclusión
Este Tipo de Clases nos permiten crear “método generales”, que recrean un
comportamiento común, ¿qué hace? pero sin especificar cómo lo hacen.
Como las clases abstractas y herencia del “Animal” resulta útil para no tener que
programar de nuevo en todos los tipos de animales que puedan existir. Simplemente
las hereda en las clases hijas.
Dentro del polimorfismo este tipo de clases resulta útil y necesario para la
declaración de métodos abstractos que se pueden implementar.
En el proceso de abstracción no debemos preocuparnos por la implementación de
cada método o atributo, solamente debemos definirlo de forma general.
Por medio de la abstracción definimos las características esenciales de un objeto
del mundo real, los atributos y comportamientos que lo definen como tal, para
después modelarlo en un objeto de software.
La abstracción consiste en captar las características esenciales de un objeto, así
como su comportamiento.

Más contenido relacionado

Destacado (7)

Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Normas que regulan las telecomunicaciones
Normas que regulan las telecomunicacionesNormas que regulan las telecomunicaciones
Normas que regulan las telecomunicaciones
 
Bus app
Bus appBus app
Bus app
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Informe de auditoria
Informe de auditoriaInforme de auditoria
Informe de auditoria
 
Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentes
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 

Similar a Abstraccion

Abstraccion
AbstraccionAbstraccion
Abstraccion
wouyrmz
 
La organización del conocimiento, procesamiento de la información
La organización del conocimiento, procesamiento de la informaciónLa organización del conocimiento, procesamiento de la información
La organización del conocimiento, procesamiento de la información
LuLa MaRquez
 
Neurociencia_para_educadores_david_bueno.pdf
Neurociencia_para_educadores_david_bueno.pdfNeurociencia_para_educadores_david_bueno.pdf
Neurociencia_para_educadores_david_bueno.pdf
alejandra672760
 
Nivelacion de filosofía 1
Nivelacion de filosofía 1Nivelacion de filosofía 1
Nivelacion de filosofía 1
Albert Machado
 

Similar a Abstraccion (20)

Abstracción
AbstracciónAbstracción
Abstracción
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Resumen abstraccion
Resumen abstraccionResumen abstraccion
Resumen abstraccion
 
Abstracción en poo
Abstracción en pooAbstracción en poo
Abstracción en poo
 
Abstracción.docs
Abstracción.docsAbstracción.docs
Abstracción.docs
 
Abstraccion en programacion orientada en objetos
Abstraccion en programacion orientada en objetosAbstraccion en programacion orientada en objetos
Abstraccion en programacion orientada en objetos
 
Abstraccion
AbstraccionAbstraccion
Abstraccion
 
Abstracción 14k
Abstracción 14kAbstracción 14k
Abstracción 14k
 
La organización del conocimiento, procesamiento de la información
La organización del conocimiento, procesamiento de la informaciónLa organización del conocimiento, procesamiento de la información
La organización del conocimiento, procesamiento de la información
 
Universidad regional autónoma de lo1
Universidad regional autónoma de lo1Universidad regional autónoma de lo1
Universidad regional autónoma de lo1
 
Abstraccionomar
AbstraccionomarAbstraccionomar
Abstraccionomar
 
La gran herencia
La gran herenciaLa gran herencia
La gran herencia
 
Desarrollocognitivo 091022192504-phpapp01
Desarrollocognitivo 091022192504-phpapp01Desarrollocognitivo 091022192504-phpapp01
Desarrollocognitivo 091022192504-phpapp01
 
Poo
PooPoo
Poo
 
Neurociencia_para_educadores_david_bueno.pdf
Neurociencia_para_educadores_david_bueno.pdfNeurociencia_para_educadores_david_bueno.pdf
Neurociencia_para_educadores_david_bueno.pdf
 
Neurociencia para Educadores DB Ccesa007.pdf
Neurociencia para Educadores DB  Ccesa007.pdfNeurociencia para Educadores DB  Ccesa007.pdf
Neurociencia para Educadores DB Ccesa007.pdf
 
Guia prezi
Guia preziGuia prezi
Guia prezi
 
Nivelacion de filosofía 1
Nivelacion de filosofía 1Nivelacion de filosofía 1
Nivelacion de filosofía 1
 
Unidad seres vivos
Unidad seres vivosUnidad seres vivos
Unidad seres vivos
 

Más de Daniiel Toorres

Trabajo final plan de comunicacion
Trabajo final plan de comunicacionTrabajo final plan de comunicacion
Trabajo final plan de comunicacion
Daniiel Toorres
 
Trabajo final plan de comunicacion
Trabajo final plan de comunicacionTrabajo final plan de comunicacion
Trabajo final plan de comunicacion
Daniiel Toorres
 
Gestión de Recursos Humanos
Gestión de Recursos HumanosGestión de Recursos Humanos
Gestión de Recursos Humanos
Daniiel Toorres
 
aplicación móvil con acceso a datos sqliti
aplicación móvil con acceso a datos sqlitiaplicación móvil con acceso a datos sqliti
aplicación móvil con acceso a datos sqliti
Daniiel Toorres
 
A1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datosA1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datos
Daniiel Toorres
 
A1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datosA1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datos
Daniiel Toorres
 
Factores de calidad y organizaciones de estandarizacion
Factores de calidad y organizaciones de estandarizacionFactores de calidad y organizaciones de estandarizacion
Factores de calidad y organizaciones de estandarizacion
Daniiel Toorres
 

Más de Daniiel Toorres (20)

Plantilla unidad i_apple
Plantilla unidad i_applePlantilla unidad i_apple
Plantilla unidad i_apple
 
Antenas
AntenasAntenas
Antenas
 
Manual de Procedimientos y Politicas de APPLE INC.
Manual de Procedimientos y Politicas de APPLE INC.Manual de Procedimientos y Politicas de APPLE INC.
Manual de Procedimientos y Politicas de APPLE INC.
 
Consultas generadas
Consultas generadasConsultas generadas
Consultas generadas
 
Trabajo final plan de comunicacion
Trabajo final plan de comunicacionTrabajo final plan de comunicacion
Trabajo final plan de comunicacion
 
Trabajo final plan de comunicacion
Trabajo final plan de comunicacionTrabajo final plan de comunicacion
Trabajo final plan de comunicacion
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Gestión de Recursos Humanos
Gestión de Recursos HumanosGestión de Recursos Humanos
Gestión de Recursos Humanos
 
Estandares y normas iso
Estandares y normas isoEstandares y normas iso
Estandares y normas iso
 
Derivadas e integrales
Derivadas e integralesDerivadas e integrales
Derivadas e integrales
 
Plantilla trabajo final
Plantilla trabajo finalPlantilla trabajo final
Plantilla trabajo final
 
aplicación móvil con acceso a datos sqliti
aplicación móvil con acceso a datos sqlitiaplicación móvil con acceso a datos sqliti
aplicación móvil con acceso a datos sqliti
 
A1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datosA1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datos
 
A1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datosA1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datos
 
Factores de calidad
Factores de calidadFactores de calidad
Factores de calidad
 
Factores de calidad y organizaciones de estandarizacion
Factores de calidad y organizaciones de estandarizacionFactores de calidad y organizaciones de estandarizacion
Factores de calidad y organizaciones de estandarizacion
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 
Manual php myadmin
Manual php myadminManual php myadmin
Manual php myadmin
 
Manual php myadmin
Manual php myadminManual php myadmin
Manual php myadmin
 
Manual php myadmin
Manual php myadminManual php myadmin
Manual php myadmin
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Abstraccion

  • 1. U N I V E R S I D A D T E C N O L Ó G I C A D E L E S T A D O D E Z A C A T E C A S U N I D A D A C A D E M I C A D E P I N O S T E C N O L O G Í A S D E L A I N F O R M A C I Ó N Y C O M U N I C A C I Ó N TEMA: ABSTRACCIÓN UNIDAD: UNIDAD II. “CONCEPTOS AVANZADOS DE LA POO” MATERIA: PROGRAMACIÓN DE APLICACIONES PROFESOR: ISC. OMAR EMMANUEL LARA JUÁREZ ALUMNO: DANIEL TORRES SALAS CARRERA: INGENIERIA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN GRADO Y GRUPO 9° CUATRIMESTRE “A” PINOS, ZACATECAS. JULIO DEL 2015
  • 2. Abstracción en 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. Pues bien, una clase abstracta es aquella sobre la que no podemos crear especímenes concretos, en la jerga de POO es aquella sobre la que no podemos instanciar objetos. Abstracción en el 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. En Herencia en Programación Orientada a Objetos se puede definir jerarquías de clasificación: los animales y dependiendo de éstos tenemos mamíferos, vertebrados, invertebrados. Dentro de los mamíferos tenemos vacas, perros… Animal puede ser desde una hormiga a un delfín o un humano. Si defines animal tienes que usar palabras muy genéricas, que abarquen a todos los animales posibles que puedan existir en el mundo. Por ello no puedes decir que animales son aquellos que nacen de huevos, o después de un periodo de gestación en la placenta. Si lo definimos con palabras no podemos llegar a mucho detalle, porque hay muchos animales distintos con características muy diferentes. Hay características que se quedan en el aire y no se pueden definir por completo cuando pensamos en el concepto de animal "genérico". Para acabar ¿en el mundo real hay un "animal" como tal? No, ni tan siquiera hay un "mamífero". Lo que tenemos son especímenes de "perro" o "vaca", "hormiga", "cocodrilo", "gorrión" pero no "animal" en plan general. Es cierto que un perro es un animal, pero el concepto final, el ejemplar, es de perro y no animal. Por tanto "animal", en términos del lenguaje común, podemos decir que es un concepto genérico, pero no una concreción. En términos de POO decimos que es un concepto abstracto, que implementaremos por medio de una clase abstracta. No instanciaremos animales como tal en el mundo, sino que instanciaremos especímenes de un tipo de animal concreto. 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
  • 3. 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. En la clase "animal" puedo tener determinadas propiedades y acciones implementadas. Por ejemplo, todos los animales pueden tener un nombre, o una edad (ya sean segundos, días o años de edad). También es posible que pueda definir diversas acciones de una vez para todos los animales de una jerarquía de herencia, por ejemplo, la acción de morir, pues todos morimos igual (simplemente dejamos de existir aunque aquí dependiendo de las creencias de cada uno esto pueda ser discutible). 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 }
  • 4. "Una clase abstracta es aquella en la que hay definidos métodos abstractos, sobre la que no podremos instanciar objetos" Además, en un esquema de herencia, "Si heredamos de una clase abstracta métodos abstractos, tampoco se podrán instanciar objetos de las clases hijas y tendrán que definirse como abstractas, a no ser que implementemos todos y cada uno de los métodos que se habían declarado como abstractos en la clase padre". Polimorfismo y Abstracción Cuando hablamos de polimorfismo explicamos que es una relajación del sistema de tipos por la cual éramos capaces de aceptar objetos de un tipo y de todas las clases hijas. Por ejemplo, tengo la clase "PoligonoRegular". Sé que los polígonos regulares voy a querer conocer su área, pero para saber su área necesito conocer el número de lados que tiene. Entonces la clase "PoligonoRegular" tendrá un método abstracto "dameArea()". Luego, al definir la clase "cuadrado", o el "pentágono", etc. podremos implementar tal método, con lo que dejará de ser abstracto. Ahora piensa en esto. Gracias a que fue definido el método abstracto "dameArea()" en la clase padre, tengo clara una cosa: cuando trabajo con elementos de la clase "poligonoRegular", sé que a todos los polígonos regulares que pueda recibir les puedo pedir que me devuelvan su área. Ahí está la potencia del polimorfismo, recibir un objeto que pertenece a una jerarquía de clasificación y saber que puedo pedirle determinadas cosas. Quizás en la clase padre no pudieron implementarse esos comportamientos, porque no sabíamos el código necesario para ello, pero al menos se declararon que iban a poder realizarse en el futuro en clases hijas. Eso me permite, en un esquema de polimorfismo, que pueda estar seguro que todos los objetos que reciba puedan responder a acciones determinadas, pues en las clases hijas habrán sido definidas necesariamente (si no se definen deberían declararse las clases como abstractas y en ese caso es imposible que me manden objetos de esa clase).
  • 5. Conclusión Este Tipo de Clases nos permiten crear “método generales”, que recrean un comportamiento común, ¿qué hace? pero sin especificar cómo lo hacen. Como las clases abstractas y herencia del “Animal” resulta útil para no tener que programar de nuevo en todos los tipos de animales que puedan existir. Simplemente las hereda en las clases hijas. Dentro del polimorfismo este tipo de clases resulta útil y necesario para la declaración de métodos abstractos que se pueden implementar. En el proceso de abstracción no debemos preocuparnos por la implementación de cada método o atributo, solamente debemos definirlo de forma general. Por medio de la abstracción definimos las características esenciales de un objeto del mundo real, los atributos y comportamientos que lo definen como tal, para después modelarlo en un objeto de software. La abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento.