Herencia
Herencia
Herencia
www.itsguasave.edu.mx..
PROGRAMACIÓN
FUNDAMENTOS DEORIENTADA A OBJETOS
BASE DE DATOS
Competencia de la unidad:
Identifica y aplica relaciones de herencia en clases derivadas
para reutilizar los miembros de una clase base en el desarrollo
de aplicaciones.
PROGRAMACIÓN ORIENTADA A OBJETOS
Introducción
La Herencia
• Es la capacidad de compartir atributos y métodos entre clases.
3
PROGRAMACIÓN ORIENTADA A OBJETOS
• La idea básica es poder crear clases basadas en clases ya existentes.
• C++ también permite consultar por la estructura de una clase (cuáles son
sus métodos y variables). A esto se le llama reflexión.
4
PROGRAMACIÓN ORIENTADA A OBJETOS
• La herencia la identificamos cuando encontramos la relación es-un entre
la nueva clase y la ya existente. Un estudiante es una persona.
5
PROGRAMACIÓN ORIENTADA A OBJETOS
Redefinición de métodos
• En la clase derivada podemos redefinir (override) métodos, lo
cual corresponde a re-implementar un método de la clase base
en la clase derivada.
6
PROGRAMACIÓN ORIENTADA A OBJETOS
• Supongamos que los gerentes reciben bonos por su desempeño. Luego su
salario será aquel en su calidad de empleado más los bonos que le
correspondan.
Herencia Simple
7
PROGRAMACIÓN ORIENTADA A OBJETOS
• El conjunto de elementos que pertenecen a un tipo incluye a los
elementos que pertenezcan a sus subtipos. Herencia Simple
8
PROGRAMACIÓN ORIENTADA A OBJETOS
Principio de subtipos: “Un objeto de un subtipo puede aparecer en
cualquier lugar donde se espera que aparezca un objeto del supertipo.”
• Los animales son capaces de moverse por sí mismos.
• Los mamíferos son capaces de moverse por sí mismos.
• Las aves son capaces de moverse por sí mismas.
• Los gatos son capaces de moverse por sí mismos.
A la inversa no siempre se cumple:
9
PROGRAMACIÓN ORIENTADA A OBJETOS
10
PROGRAMACIÓN ORIENTADA A OBJETOS
El principio de los subtipos también se cumple en la P.O.O.
• Una función que recibe un objeto de la clase base.
void Despedir (empleado);
• Puede recibir objetos de la clase base y también de sus derivadas.
empleado e;
empleado_producción ep;
empleado_comerciales ec;
Despedir (e);
Despedir (ep);
Despedir (ec);
11
PROGRAMACIÓN ORIENTADA A OBJETOS
Herencia de variables y
métodos
12
PROGRAMACIÓN ORIENTADA A OBJETOS
Las clases derivadas reciben las variables y métodos de la clase base.
• Empleado_comercial ec;
• Empleado_produccion ep;
• ec.Cambiar_Sueldo();
• ep.Cambiar_Sueldo();
13
PROGRAMACIÓN ORIENTADA A OBJETOS
Relación tener-un: Un coche tiene un tipo de motor
14
PROGRAMACIÓN ORIENTADA A OBJETOS
Relación ser-un: Un coche es un vehículo
16
PROGRAMACIÓN ORIENTADA A OBJETOS
Sobre carga de constructores: los constructores también pueden ser
sobrecargados, por lo que al crear un nuevo objeto se debe indicar los
parámetros apropiados para llevarlo a cabo:
19
PROGRAMACIÓN ORIENTADA A OBJETOS
Proyecto de herencia
• Realizar un programa que utilice POO, debe generar la clase impuesto y
heredarla en 3 tipos de impuesto, IVA, IH, IEPS, cada uno de estos impuestos
tiene porcentajes distintos de cobro sobre la base grabable, por lo que la clase
padre debe tener método que reciba el monto y el porcentaje y regrese el total
a cobrar como impuesto, las clases heredadas harán uso de esta rutina sin
modificarla.
• Las clases heredadas deben contar con su propio método de captura cada una.
• Implementar en la rutina main un menú básico en el cual se pida el tipo de
impuesto a calcular, IVA =16%, IH=2% mas el IVA correspondiente, en el caso
del IEPS depende del octanaje de la gasolina, cuando es menor a 92 octanos es
11.95%, cuando es mayor o igual a 92 octanos es 16%, además de sumar el IVA
correspondiente al total de impuestos a pagar.
20