SlideShare una empresa de Scribd logo
1 de 15
Estructura de Datos con Algoritmo
          Profesora María de Dimares


Preparado por:   Andrea Ruiz
                 Joel Solís


                 1 de Agosto de 2012
Se entiende por herencia el proceso por el que un objeto
puede tomar características de otro objeto.

La herencia se puede usar de dos formas:
1. Cuando una clase escrita no llega a cubrir las necesidades
que exige un determinado problema, se
puede retocar el código cambiando las características que se
requieren, e ignorando el resto.
Esto permite una programación rápida. Esto es una forma de
reutilización del código.
2. Se expresa un determinado problema como una jerarquía
de clases, donde existe una clase base de la
que se derivan otras subclases. La interfaz de la clase base
es común a todas las clases derivadas
Los constructores y destructores no son heredados por las
clases derivadas. Sin embargo, una instancia de una clase
derivada contendrá todos los miembros de la clase base, y
éstos deben ser iniciados. En consecuencia, el constructor de
la clase base debe ser llamado por el constructor de la clase
derivada.
Dado que una clase derivada se puede entender como un
súper conjunto de la clase base, que va a contener todos los
miembros de la clase base, una instancia de la clase derivada
se puede emplear de forma automática como si fuera una
instancia de la clase base. El caso contrario no es cierto, no
se puede tratar un objeto de la clase base como si fuera un
objeto de una clase derivada, ya que el objeto de la clase
base no tiene todos los miembros de la clase derivada.
La relación de herencia entre clases puede ser: pública
(public), privada (private) ó protegida (protected).
La relación que se utiliza con mayor frecuencia es la pública.
Dependiendo del número de clases y de cómo se relacionen,
la herencia puede ser:

a) Simple.
b) Múltiple.
Herencia Simple La herencia en C++ es un mecanismo de
abstracción creado para poder facilitar, y mejorar el diseño de las
clases de un programa. Con ella se pueden crear nuevas clases a
partir de clases ya hechas, siempre y cuando tengan un tipo de
relación especial. En la herencia, las clases derivadas “heredan”
los datos y las funciones miembro de las clases base, pudiendo
las clases derivadas redefinir estos comportamientos
(polimorfismo) y añadir comportamientos nuevos propios de las
clases derivadas.
La forma general de la herencia en C++ es:
class <nombre_clase_derivada>: [<acceso>]
<nombre_clase_heredada> {
// Cuerpo de la declaración de la clase
};
Una clase derivada puede tener un miembro con el mismo
nombre que un miembro de la clase base. Cuando
ocurre esto, y se referencia este nombre que está duplicado, el
compilador asumirá que se desea acceder al
miembro de la clase derivada.
Este hecho se conoce como anulación, invalidación o
suplantación del miembro de la clase base por el miembro
de la clase derivada.
Para acceder al miembro de la clase base se deberá utilizar el
operador de resolución de ámbito.
Es la propiedad con la cual una clase derivada puede tener
más de una clase base. Es más
adecuada para definir objetos que son compuestos, por
naturaleza, tales como un registro
personal, un objeto gráfico.

La sintaxis de la herencia múltiple es una extensión de la
utilizada para la herencia simple. La manera de
expresar este tipo de herencia es mediante una lista de
herencia, que consta de las clases de las que se hereda
separadas por comas.
El uso de funciones constructor y destructor en clases derivadas es más
complejo que en una
clase simple. Al crear clases derivadas con una sola clase base, se
observa que el constructor de
la clase base se llama siempre antes que el constructor de la clase
derivada. Además se dispone
de un mecanismo para pasar los valores de los parámetros necesarios al
constructor base desde
el constructor de la clase derivada. Así, la sentencia siguiente pasa el
puntero a carácter x y el
valor del entero y a la clase base:
           derivada (char *x, int y, double z): base(x,y)
Este método se expande para efectuar más de una clase base. La
sentencia:
         derivada (char *x,int y, double z): base1(x),base2(y)
En la herencia múltiple aparecen ambigüedades, como en el ejemplo
de encima: si la clase Músico heredaba de Persona y Trabajador, y la
clase Trabajador heredaba de Persona. Existirían las siguientes
reglas:
Músico Estudiante : Persona, Músico, Trabajador
Músico : Persona, Trabajador
Trabajador: Persona
Si un compilador está mirando la clase Músico Estudiante necesita
saber si debe juntar las características iguales o si deben estar
separadas. Por ejemplo, tendría sentido unir las características "Edad"
de Persona para Músico Estudiante. La edad de una persona no
cambia si le consideras una Persona, un Trabajador o un Músico. Sin
embargo, tendría sentido separar la característica "Nombre" de
Persona y Músico si los músicos usan un nombre artístico diferente de
su nombre real. Las opciones de juntar y separar son válidas según el
contexto, y sólo el programador sabe qué opción es correcta para la
clase que está diseñando.
Hay debate sobre si la herencia múltiple puede ser
implementada de forma simple y sin ambigüedad. Con
frecuencia es criticada por su aumentada complejidad y su
ambigüedad, así como los problemas de versiones y
mantenimiento que puede causar (a menudo resumido
como el problema del diamante).
Los detractores también señalan que hay problemas de
implementación de la herencia múltiple como no ser capaces
de explicitar herencia de múltiple clases y el orden de las
semánticas de clase que cambian con la herencia. Hay
lenguajes que solucionan todos los problemas técnicos de la
herencia múltiple, pero el debate principal sigue sobre si
implementar y usar herencia múltiple es más fácil que usar
herencia simple y patrones de diseño de software.
Estructura de Datos con Algoritmo de Herencia
Estructura de Datos con Algoritmo de Herencia
Estructura de Datos con Algoritmo de Herencia
Estructura de Datos con Algoritmo de Herencia

Más contenido relacionado

La actualidad más candente

IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosFranklin Parrales Bravo
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
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
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.nayis2010
 
Lenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLuis Fernando Aguas Bucheli
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLCindy Adriana Bohórquez Santana
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 

La actualidad más candente (20)

IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientos
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Greenfoot 2
Greenfoot 2Greenfoot 2
Greenfoot 2
 
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
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Lenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UML
 
Poo
PooPoo
Poo
 
Herencia poo
Herencia pooHerencia poo
Herencia poo
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Base de datos tienda de abarrotes
Base de datos tienda de abarrotesBase de datos tienda de abarrotes
Base de datos tienda de abarrotes
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 

Similar a Estructura de Datos con Algoritmo de Herencia

Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)KareliaRivas
 
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 Marielena Lujano
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfJCarlosCrespo
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptxjuan gonzalez
 
METODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxMETODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxjuan gonzalez
 
Tutorial c (3)
Tutorial c (3)Tutorial c (3)
Tutorial c (3)ArmandoC42
 
Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agostoosorioj
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad iiIrving Trigo
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 

Similar a Estructura de Datos con Algoritmo de Herencia (20)

Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)Programación orientada a objetos (Herencia)
Programación orientada a objetos (Herencia)
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Herencia
HerenciaHerencia
Herencia
 
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
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
Clase y Herencia en VB
Clase y Herencia en VBClase y Herencia en VB
Clase y Herencia en VB
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
Clases 2
Clases 2Clases 2
Clases 2
 
METODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxMETODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptx
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Tutorial c (3)
Tutorial c (3)Tutorial c (3)
Tutorial c (3)
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agost
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Programacion 3 unidad ii
Programacion 3   unidad iiProgramacion 3   unidad ii
Programacion 3 unidad ii
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 

Último

Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariamarco carlos cuyo
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 

Último (20)

Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundaria
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 

Estructura de Datos con Algoritmo de Herencia

  • 1. Estructura de Datos con Algoritmo Profesora María de Dimares Preparado por: Andrea Ruiz Joel Solís 1 de Agosto de 2012
  • 2. Se entiende por herencia el proceso por el que un objeto puede tomar características de otro objeto. La herencia se puede usar de dos formas: 1. Cuando una clase escrita no llega a cubrir las necesidades que exige un determinado problema, se puede retocar el código cambiando las características que se requieren, e ignorando el resto. Esto permite una programación rápida. Esto es una forma de reutilización del código. 2. Se expresa un determinado problema como una jerarquía de clases, donde existe una clase base de la que se derivan otras subclases. La interfaz de la clase base es común a todas las clases derivadas
  • 3. Los constructores y destructores no son heredados por las clases derivadas. Sin embargo, una instancia de una clase derivada contendrá todos los miembros de la clase base, y éstos deben ser iniciados. En consecuencia, el constructor de la clase base debe ser llamado por el constructor de la clase derivada.
  • 4. Dado que una clase derivada se puede entender como un súper conjunto de la clase base, que va a contener todos los miembros de la clase base, una instancia de la clase derivada se puede emplear de forma automática como si fuera una instancia de la clase base. El caso contrario no es cierto, no se puede tratar un objeto de la clase base como si fuera un objeto de una clase derivada, ya que el objeto de la clase base no tiene todos los miembros de la clase derivada.
  • 5. La relación de herencia entre clases puede ser: pública (public), privada (private) ó protegida (protected). La relación que se utiliza con mayor frecuencia es la pública. Dependiendo del número de clases y de cómo se relacionen, la herencia puede ser: a) Simple. b) Múltiple.
  • 6. Herencia Simple La herencia en C++ es un mecanismo de abstracción creado para poder facilitar, y mejorar el diseño de las clases de un programa. Con ella se pueden crear nuevas clases a partir de clases ya hechas, siempre y cuando tengan un tipo de relación especial. En la herencia, las clases derivadas “heredan” los datos y las funciones miembro de las clases base, pudiendo las clases derivadas redefinir estos comportamientos (polimorfismo) y añadir comportamientos nuevos propios de las clases derivadas. La forma general de la herencia en C++ es: class <nombre_clase_derivada>: [<acceso>] <nombre_clase_heredada> { // Cuerpo de la declaración de la clase };
  • 7. Una clase derivada puede tener un miembro con el mismo nombre que un miembro de la clase base. Cuando ocurre esto, y se referencia este nombre que está duplicado, el compilador asumirá que se desea acceder al miembro de la clase derivada. Este hecho se conoce como anulación, invalidación o suplantación del miembro de la clase base por el miembro de la clase derivada. Para acceder al miembro de la clase base se deberá utilizar el operador de resolución de ámbito.
  • 8. Es la propiedad con la cual una clase derivada puede tener más de una clase base. Es más adecuada para definir objetos que son compuestos, por naturaleza, tales como un registro personal, un objeto gráfico. La sintaxis de la herencia múltiple es una extensión de la utilizada para la herencia simple. La manera de expresar este tipo de herencia es mediante una lista de herencia, que consta de las clases de las que se hereda separadas por comas.
  • 9. El uso de funciones constructor y destructor en clases derivadas es más complejo que en una clase simple. Al crear clases derivadas con una sola clase base, se observa que el constructor de la clase base se llama siempre antes que el constructor de la clase derivada. Además se dispone de un mecanismo para pasar los valores de los parámetros necesarios al constructor base desde el constructor de la clase derivada. Así, la sentencia siguiente pasa el puntero a carácter x y el valor del entero y a la clase base: derivada (char *x, int y, double z): base(x,y) Este método se expande para efectuar más de una clase base. La sentencia: derivada (char *x,int y, double z): base1(x),base2(y)
  • 10. En la herencia múltiple aparecen ambigüedades, como en el ejemplo de encima: si la clase Músico heredaba de Persona y Trabajador, y la clase Trabajador heredaba de Persona. Existirían las siguientes reglas: Músico Estudiante : Persona, Músico, Trabajador Músico : Persona, Trabajador Trabajador: Persona Si un compilador está mirando la clase Músico Estudiante necesita saber si debe juntar las características iguales o si deben estar separadas. Por ejemplo, tendría sentido unir las características "Edad" de Persona para Músico Estudiante. La edad de una persona no cambia si le consideras una Persona, un Trabajador o un Músico. Sin embargo, tendría sentido separar la característica "Nombre" de Persona y Músico si los músicos usan un nombre artístico diferente de su nombre real. Las opciones de juntar y separar son válidas según el contexto, y sólo el programador sabe qué opción es correcta para la clase que está diseñando.
  • 11. Hay debate sobre si la herencia múltiple puede ser implementada de forma simple y sin ambigüedad. Con frecuencia es criticada por su aumentada complejidad y su ambigüedad, así como los problemas de versiones y mantenimiento que puede causar (a menudo resumido como el problema del diamante). Los detractores también señalan que hay problemas de implementación de la herencia múltiple como no ser capaces de explicitar herencia de múltiple clases y el orden de las semánticas de clase que cambian con la herencia. Hay lenguajes que solucionan todos los problemas técnicos de la herencia múltiple, pero el debate principal sigue sobre si implementar y usar herencia múltiple es más fácil que usar herencia simple y patrones de diseño de software.