SlideShare a Scribd company logo
1 of 15
HERENCIA Y
POLIMORFISMO.
Polimorfismo
• Una de las características más importantes de la
programación orientada a objetos es la capacidad de
que diferentes objetos responden a órdenes similares
de modo diferentes.
• Identificador de mensaje y operadores sobrecargados.
El identificador de mensaje y operador invocan una
operación específica sobre un objeto. Cada uno
establece la selección del significado uniforme de la
operación en particular que se desea realizar.
• En términos generales, Polimorfismo se define
como la calidad o estado de ser capaz de asumir
formas diferentes.
• En la solución de un problema orientado a objetos,
polimorfismo puede aplicarse a cualquier objetos en
una operación, o función.
• (En la POO) el polimorfismo se refiere al hecho de
que una misma operación puede tener diferente
comportamiento en diferentes objetos. En otras
palabras, diferentes objetos reaccionan al mismo
mensaje de manera diferente.
Polimorfismo
Polimorfismo
(Ejemplo Sobrecarga)
class complejo //Nombre de la clase
{
public :
complejo( double = 0.0, double = 0.0 ); //Constructor
complejo operator + ( const complejo & ) const; //Sobrecarga
private:
double real, imaginario; };
complejo::complejo( double a, double b ) // Constructor de la clase
{ real = a; imaginario = b; }
complejo complejo::operator + (const complejo &a) const
{ complejo c; //Define un objeto complejo
c.real = real + a.real; //Define de la operación llevada a cabo por el operador
c.imaginario = imaginario+a.imaginario;
return c; //Retorno del valor adquirido }
La Sobrecarga De Operadores Es Un
Ejemplo Muy Claro de Polimorfismo.
Donde se sobrecarga el operador es
donde se aplica el polimorfismo.
• En términos generales, La herencia es el acto de adquirir una
posesión, condición, o característica de generaciones
pasadas.
• En la solución de un problema orientado a objetos un tipo de
objeto hereda propiedades que caracterizan otro tipo de
objeto.
• Las propiedades de los objetos son dadas por la descripción
de la clase, esto implica una jerarquía de clases, donde una
clase es una subclase de otra.
• Los objetos que son los instancias de las subclases tienen
propiedades dadas dentro de la descripción de la subclase
así como también propiedades heredadas dadas dentro de la
clase padre y todas las clases antecesoras.
Herencia
De la que se
hereda
La que hereda
Superclase Subclase
Clase Padre Clase hijo
Clase Base Clase Derivada
• La herencia se apoya en el significado de ese concepto en la vida
diaria.
• Así, las clases básicas (base class) o fundamentales se dividen en
subclases (derived class).
Terminología
• Una clase utilizada para derivar nuevas clases se conoce como clase
base (padre, ascendiente), y una clase creada de otra clase se llama
clase derivada (hija, descendiente, subclase).
• En un lenguaje Orientado a Objetos la herencia se manifiesta con la
creación de un tipo definido por el usuario, que puede heredar las
características de otra clase ya existente o derivar las suyas a otra nueva
clase.
• Cuando se hereda, las clases derivadas reciben las características
(estructuras de datos y funciones) de la clase original , a las que se
pueden añadir nuevas características o modificar las características
heredadas.
• La herencia se aplica para extender y reutilizar el código existente:
• Los objetos se pueden construir de modo incremental a partir de
otros objetos y pueden compartir código y estructuras de datos
• Los algoritmos generales se pueden escribir de modo que se pueden
reutilizar para nuevos tipos de objetos, incluso después que los
algoritmos originales se han compilado.
Conceptualización
• Es la propiedad que permite a los objetos construirse a partir de
otros objetos. Este principio consiste en que cada clase puede
dividirse en subclases.
• Las instancias heredan (usualmente) todas, y únicamente, las
características de las clases a las que pertenecen, pero, también,
es posible, en un sistema orientado a objetos, que se permita
que las clases hereden características de superclases más
generales.
• En ese caso, las características heredadas pueden ser ignoradas
(overriden) y se pueden agregar características adicionales para
tratar excepciones.
Herencia
• De esta forma la herencia provee la potencialidad para construir
soluciones nuevas a problemas agregando el incremento de la
capacidad a soluciones existentes del problema mediante subclases.
• Las instancias de una subclase representan una especialización de
instancias descritas por una clase padre.
• La instancia de la subclase tiene todos los atributos dados por la
clase padre, más los atributos adicionales o agregados de la
subclase.
• La instancia de la subclase responde al mismo conjunto de
mensajes dados en la clase padre, los mensajes adicionales se dan
en la descripción de la subclase.
Herencia
• Se realiza tomando una clase existente y derivando nuevas clases
de ella.
• La clase derivada hereda las estructuras de datos y funciones de
la clase original, Además, se pueden añadir nuevos miembros a
las clases derivadas y los miembros heredados pueden ser
modificados.
• Una clase utilizada para derivar nuevas clases se denomina clase
base (padre, superclase, ascendiente).
• Una clase creada de otra clase se denomina clase derivada o
subclase. A su vez una clase derivada puede ser utilizada como
una clase base para derivar más clases.
• Por consiguiente, se pueden construir jerarquías de clases, en las
que cada clase sirve como padre o raíz de una nueva clase.
Herencia Simple
Ejemplo De Herencia Simple
class Barco {
protected: char* nombre; float peso;
public: //Constructores y demás funciones básicas de barco };
class Carguero: public Barco // Esta es la manera de especificar que hereda de Barco.
{
private: float carga; //faltaría el resto de cosas };
class Acorazado: public Barco
{
private: int numeroArmas; int Soldados;
// El resto de cosas };
Herencia Múltiple
Es aquella en la cual una clase derivada tiene más
de una clase base. Aunque el concepto de
herencia múltiple es muy útil, el diseño de clases
suele ser más complejo, y en ocasiones es
preferible realizar la aplicación con herencia
múltiple mediante emulación de herencia simple.
Ejemplo de Herencia Múltiple
Si una clase recibe propiedades de más de una clase base, la
herencia es múltiple.
Características A
Características B
Características A
Características B
Características C
Características D
Características E
Características A
Características B
Características C
Funciones virtual
• Diseñar e implementar sistemas que sean
extensible más fácilmente
• Programas escritos para procesar todos los
objetos de clases existentes genéricamente
en una jerarquía
Suponga un conjunto de superficies tales como Circle, Triangle, etc.
Cada superficie tiene su propia función para dibujarse, pero es posible
llamarlas a ella invocando solamente la función draw de la clase base
Shape, el compilador determina dinámicamente (en tiempo de ejecución)
a cual llamar.
En la clase base se declara a draw como virtual.
Se sobrescribe draw en cada clase derivada,
Declaración virtual
La palabra reservada virtual antes del prototipo de la función:
virtual void draw() const;
Un puntero de la clase base a un objeto de la clase derivada, llamará la
función draw correctamente,
Shape->draw();
Funciones virtual

More Related Content

What's hot

Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
EJEMPLOS DE CLASES Y HERENCIAS
EJEMPLOS DE CLASES Y HERENCIASEJEMPLOS DE CLASES Y HERENCIAS
EJEMPLOS DE CLASES Y HERENCIASMarcelo Herrera
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Jerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismoJerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismoEdwin Loayza
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasJosé Antonio Sandoval Acosta
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaJosé Antonio Sandoval Acosta
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 

What's hot (20)

Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
EJEMPLOS DE CLASES Y HERENCIAS
EJEMPLOS DE CLASES Y HERENCIASEJEMPLOS DE CLASES Y HERENCIAS
EJEMPLOS DE CLASES Y HERENCIAS
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Jerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismoJerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismo
 
Ejercicios de normalizacion
Ejercicios de normalizacionEjercicios de normalizacion
Ejercicios de normalizacion
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Herencia - Java
Herencia - JavaHerencia - Java
Herencia - Java
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 

Viewers also liked (8)

Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Odmg
OdmgOdmg
Odmg
 
ODMG
ODMGODMG
ODMG
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia
 
Genetica polomorfismos-1
Genetica polomorfismos-1Genetica polomorfismos-1
Genetica polomorfismos-1
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Similar to Herencia y polimorfismo

Similar to Herencia y polimorfismo (20)

Herencia
HerenciaHerencia
Herencia
 
_Herencia_Polimorfismo_Polimorfismo.pptx
_Herencia_Polimorfismo_Polimorfismo.pptx_Herencia_Polimorfismo_Polimorfismo.pptx
_Herencia_Polimorfismo_Polimorfismo.pptx
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
POO con PHP
POO con PHPPOO con PHP
POO con PHP
 
Herencia informatica
Herencia informaticaHerencia informatica
Herencia informatica
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
 
Herencia en C++
Herencia en C++Herencia en C++
Herencia en C++
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Historia java ruben
Historia java rubenHistoria java ruben
Historia java ruben
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2
 
Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetos
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
 
Herencia
HerenciaHerencia
Herencia
 
Aprendiendo objetos en c++
Aprendiendo objetos en c++Aprendiendo objetos en c++
Aprendiendo objetos en c++
 
METODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxMETODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptx
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 

More from Gloria Isabel Bautista Lasprilla (13)

Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Complejidad computacional 1
Complejidad computacional 1Complejidad computacional 1
Complejidad computacional 1
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
Complejidad computacional selección
Complejidad computacional   selecciónComplejidad computacional   selección
Complejidad computacional selección
 
El apuntador this
El apuntador this El apuntador this
El apuntador this
 
Poster - presentación
Poster - presentaciónPoster - presentación
Poster - presentación
 
Recorridos en ABB
Recorridos en ABB Recorridos en ABB
Recorridos en ABB
 
Abb árboles de búsqueda binaria
Abb árboles de búsqueda binariaAbb árboles de búsqueda binaria
Abb árboles de búsqueda binaria
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Poo presentacion
Poo presentacionPoo presentacion
Poo presentacion
 
Presentacion encuentro gloria bautista
Presentacion encuentro   gloria bautistaPresentacion encuentro   gloria bautista
Presentacion encuentro gloria bautista
 
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicosModelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
 
Articulación Educación Media con Superior
Articulación Educación Media con SuperiorArticulación Educación Media con Superior
Articulación Educación Media con Superior
 

Herencia y polimorfismo

  • 2. Polimorfismo • Una de las características más importantes de la programación orientada a objetos es la capacidad de que diferentes objetos responden a órdenes similares de modo diferentes. • Identificador de mensaje y operadores sobrecargados. El identificador de mensaje y operador invocan una operación específica sobre un objeto. Cada uno establece la selección del significado uniforme de la operación en particular que se desea realizar.
  • 3. • En términos generales, Polimorfismo se define como la calidad o estado de ser capaz de asumir formas diferentes. • En la solución de un problema orientado a objetos, polimorfismo puede aplicarse a cualquier objetos en una operación, o función. • (En la POO) el polimorfismo se refiere al hecho de que una misma operación puede tener diferente comportamiento en diferentes objetos. En otras palabras, diferentes objetos reaccionan al mismo mensaje de manera diferente. Polimorfismo
  • 4. Polimorfismo (Ejemplo Sobrecarga) class complejo //Nombre de la clase { public : complejo( double = 0.0, double = 0.0 ); //Constructor complejo operator + ( const complejo & ) const; //Sobrecarga private: double real, imaginario; }; complejo::complejo( double a, double b ) // Constructor de la clase { real = a; imaginario = b; } complejo complejo::operator + (const complejo &a) const { complejo c; //Define un objeto complejo c.real = real + a.real; //Define de la operación llevada a cabo por el operador c.imaginario = imaginario+a.imaginario; return c; //Retorno del valor adquirido } La Sobrecarga De Operadores Es Un Ejemplo Muy Claro de Polimorfismo. Donde se sobrecarga el operador es donde se aplica el polimorfismo.
  • 5. • En términos generales, La herencia es el acto de adquirir una posesión, condición, o característica de generaciones pasadas. • En la solución de un problema orientado a objetos un tipo de objeto hereda propiedades que caracterizan otro tipo de objeto. • Las propiedades de los objetos son dadas por la descripción de la clase, esto implica una jerarquía de clases, donde una clase es una subclase de otra. • Los objetos que son los instancias de las subclases tienen propiedades dadas dentro de la descripción de la subclase así como también propiedades heredadas dadas dentro de la clase padre y todas las clases antecesoras. Herencia
  • 6. De la que se hereda La que hereda Superclase Subclase Clase Padre Clase hijo Clase Base Clase Derivada • La herencia se apoya en el significado de ese concepto en la vida diaria. • Así, las clases básicas (base class) o fundamentales se dividen en subclases (derived class). Terminología
  • 7. • Una clase utilizada para derivar nuevas clases se conoce como clase base (padre, ascendiente), y una clase creada de otra clase se llama clase derivada (hija, descendiente, subclase). • En un lenguaje Orientado a Objetos la herencia se manifiesta con la creación de un tipo definido por el usuario, que puede heredar las características de otra clase ya existente o derivar las suyas a otra nueva clase. • Cuando se hereda, las clases derivadas reciben las características (estructuras de datos y funciones) de la clase original , a las que se pueden añadir nuevas características o modificar las características heredadas. • La herencia se aplica para extender y reutilizar el código existente: • Los objetos se pueden construir de modo incremental a partir de otros objetos y pueden compartir código y estructuras de datos • Los algoritmos generales se pueden escribir de modo que se pueden reutilizar para nuevos tipos de objetos, incluso después que los algoritmos originales se han compilado. Conceptualización
  • 8. • Es la propiedad que permite a los objetos construirse a partir de otros objetos. Este principio consiste en que cada clase puede dividirse en subclases. • Las instancias heredan (usualmente) todas, y únicamente, las características de las clases a las que pertenecen, pero, también, es posible, en un sistema orientado a objetos, que se permita que las clases hereden características de superclases más generales. • En ese caso, las características heredadas pueden ser ignoradas (overriden) y se pueden agregar características adicionales para tratar excepciones. Herencia
  • 9. • De esta forma la herencia provee la potencialidad para construir soluciones nuevas a problemas agregando el incremento de la capacidad a soluciones existentes del problema mediante subclases. • Las instancias de una subclase representan una especialización de instancias descritas por una clase padre. • La instancia de la subclase tiene todos los atributos dados por la clase padre, más los atributos adicionales o agregados de la subclase. • La instancia de la subclase responde al mismo conjunto de mensajes dados en la clase padre, los mensajes adicionales se dan en la descripción de la subclase. Herencia
  • 10. • Se realiza tomando una clase existente y derivando nuevas clases de ella. • La clase derivada hereda las estructuras de datos y funciones de la clase original, Además, se pueden añadir nuevos miembros a las clases derivadas y los miembros heredados pueden ser modificados. • Una clase utilizada para derivar nuevas clases se denomina clase base (padre, superclase, ascendiente). • Una clase creada de otra clase se denomina clase derivada o subclase. A su vez una clase derivada puede ser utilizada como una clase base para derivar más clases. • Por consiguiente, se pueden construir jerarquías de clases, en las que cada clase sirve como padre o raíz de una nueva clase. Herencia Simple
  • 11. Ejemplo De Herencia Simple class Barco { protected: char* nombre; float peso; public: //Constructores y demás funciones básicas de barco }; class Carguero: public Barco // Esta es la manera de especificar que hereda de Barco. { private: float carga; //faltaría el resto de cosas }; class Acorazado: public Barco { private: int numeroArmas; int Soldados; // El resto de cosas };
  • 12. Herencia Múltiple Es aquella en la cual una clase derivada tiene más de una clase base. Aunque el concepto de herencia múltiple es muy útil, el diseño de clases suele ser más complejo, y en ocasiones es preferible realizar la aplicación con herencia múltiple mediante emulación de herencia simple.
  • 13. Ejemplo de Herencia Múltiple Si una clase recibe propiedades de más de una clase base, la herencia es múltiple. Características A Características B Características A Características B Características C Características D Características E Características A Características B Características C
  • 14. Funciones virtual • Diseñar e implementar sistemas que sean extensible más fácilmente • Programas escritos para procesar todos los objetos de clases existentes genéricamente en una jerarquía
  • 15. Suponga un conjunto de superficies tales como Circle, Triangle, etc. Cada superficie tiene su propia función para dibujarse, pero es posible llamarlas a ella invocando solamente la función draw de la clase base Shape, el compilador determina dinámicamente (en tiempo de ejecución) a cual llamar. En la clase base se declara a draw como virtual. Se sobrescribe draw en cada clase derivada, Declaración virtual La palabra reservada virtual antes del prototipo de la función: virtual void draw() const; Un puntero de la clase base a un objeto de la clase derivada, llamará la función draw correctamente, Shape->draw(); Funciones virtual