Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Introducción
z La herencia es una forma de reutilización del
software con la que se crean clases que absorben
los datos y comportamientos de una clase existente
y los mejoran con nuevas capacidades
2
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Temas
z Clases base y clases derivadas
z Consideraciones de diseño
z Declaración de una clase derivada
z Tipos de herencia en C++
z Tipo de herencia public
z Tipos de herencia protected y private
z Herencia multiple
3
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Clases base y clases derivadas
z Todo objeto de una clase derivada “es un”
objeto de su clase base
Docente Administrativo
Administrador Maestro
Maestro - administrador
5
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Consideraciones de diseño
A veces es difícil decidir cuál es la relación de herencia mas
adecuada entre clases en el diseño de un programa y se debe
tener presente cada aplicación a desarrollar
Empleado Empleado
Empleado
Herencia public
z Es la mas utilizada
z Los miembros public y protected de la clase base retienen su acceso
a miembros original cuando se hacen miembros de una clase
derivada
z No es posible acceder de manera directa a los miembros private de
una clase base desde las clases derivadas pero se puede acceder a
ellos a través de llamadas a los miembros public y protected de la
clase base
z Los constructores no se heredan
z Las funciones friend no son heredadas
8
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Definición de una clase con datos miembro protected
11
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Herencia protected
z Su uso es raro y se debe tener cuidado
z Cuando una clase se deriva de una clase base protected,
los miembros public y protected se convierten en
miembros protected de la clase derivada
z Los constructores no se heredan
class nombre_clase_derivada : protected nombre_clase_base {
Herencia private
z Su uso es raro y se debe tener cuidado
z Cuando una clase se deriva de una clase base private, los
miembros public y protected se convierten en miembros
private de la clase derivada
z Los constructores no se heredan
class nombre_clase_derivada : private nombre_clase_base {
12
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006
Herencia multiple
z La herencia multiple es un tipo de herencia en la que una
clase hereda el estado y comportamiento de más de una
clase base
z Hay herencia multiple cuando existen multiples clases
base para la clase derivada
class nombre_clase_derivada : tipo_herencia nombre_clase_base1, tipo_herencia nombre_clase_base2
{
public:
// Miembros públicos
private:
// Miembros privados
};
14
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II 21/02/2006