Oop U3

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 18

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico Superior de Guasave


Ingeniería en Sistemas
Computacionales Programación
Orientada a Objetos
Unidad 3: Herencia
PROGRAMACIÓN ORIENTADA A OBJETOS
Introducción
La Herencia
• Es la capacidad de compartir atributos y métodos entre clases.

• Es la propiedad que permite definir nuevas clases usando como


base clases ya existentes.

• La nueva clase (clase derivada) hereda los atributos y comportamiento


que son específicos de ella.

2
PROGRAMACIÓN ORIENTADA A OBJETOS
• La idea básica es poder crear clases basadas en clases ya existentes.

• Cuando heredamos de una clase existente, estamos re-usando


código (métodos y campos).

• Podemos agregar métodos y variables para adaptar la clase a la


nueva situación.

• 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.

3
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.

• La clase ya existente se le llama superclase, clase base , o clase padre.

• A la nueva clase se le llama subclase, clase derivada, o clase hija.

4
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.

5
PROGRAMACIÓN ORIENTADA A OBJETOS
Herencia Simple

6
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

7
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:

8
PROGRAMACIÓN ORIENTADA A OBJETOS

9
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); 10
PROGRAMACIÓN ORIENTADA A OBJETOS
Herencia de variables y
métodos

11
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();

12
PROGRAMACIÓN ORIENTADA A OBJETOS
Relación tener-un: Un coche tiene un tipo de motor

• Composición significa contener un objeto.

13
PROGRAMACIÓN ORIENTADA A OBJETOS
Relación ser-un: Un coche es un vehículo

• Herencia significa contener una clase.

class coche:: vehiculo{ … };


class autobus:: vehiculo{ …
}; 14
PROGRAMACIÓN ORIENTADA A OBJETOS
Herencia en C ++
• C ++ permite definir una clase como subclase
Clase Padre
de una clase padre.
class clase_hija : clase_padre
{
miembros de la clase
..........
Clase Hija

15
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:
Cuenta::Cuenta() {
class Cuenta {
numero = 0;
public:
strcpy(nombre,"");;
long numero;
saldo = 0;
char nombre[20];
}; // primer constructor
float saldo;
Cuenta::Cuenta (float sal, long nCta) {
Cuenta ();
numero = nCta;
Cuenta (float sal,
strcpy (nombre,"");
long cTa);
saldo =
}; // clase Cuenta
sal;
}; // segundo constructor
16
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejercicio de herencia

Realizar un programa que utilice POO, debe generar una clase llamada persona
y heredar sus características a otra subclase llamada empleado y otra llamada
estudiante.
• Se deben crear los constructores necesarios por clase.
• Se deben crear los métodos por clase apropiados para cada tipo de persona
en cuestión.
• En la rutina main se debe presentar un menú básico que permita decidir si
se van a capturar los datos de un empleado o de un estudiante.

17
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica 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.
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.
18

También podría gustarte