programacion orientada a objetos - unidad 3 herencia

14
Ingeniería en Sistemas Computacionales Programación Orientada a Objetos Unidad 3: Herencia Este material está desarrollado para la asignatura Programación Orientada a Objetos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224. PROGRAMACIÓN ORIENTADA A OBJETOS

Upload: jose-antonio-sandoval-acosta

Post on 15-Feb-2017

38 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Programacion orientada a objetos - unidad 3 herencia

Ingeniería en Sistemas ComputacionalesProgramación Orientada a Objetos

Unidad 3: Herencia

Este material está desarrollado para la asignatura Programación Orientada a Objetos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224.

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 2: Programacion orientada a objetos - unidad 3 herencia

2

Introducción• 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.

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 3: Programacion orientada a objetos - unidad 3 herencia

3

Introducción (cont.)• 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.

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 4: Programacion orientada a objetos - unidad 3 herencia

4

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.

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 5: Programacion orientada a objetos - unidad 3 herencia

5

Ejemplo: Los gerentes también son empleados

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

• Jerarquía de clases:

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 6: Programacion orientada a objetos - unidad 3 herencia

6

Herencia en C Sharp• C Sharp permite definir una clase

como subclase de una clase padre.class clase_hija : clase_padre{

..........

}

Clase Padre

Clase Hija

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 7: Programacion orientada a objetos - unidad 3 herencia

7

Herencia en C Sharp

PROGRAMACIÓN ORIENTADA A OBJETOS

• Inicialización y Finalización: esto se hace por medio de constructores cuyo nombre coincide con la clase.

public class Cuenta {long numero;string nombre;float saldo;public Cuenta () {

numero=0;nombre=“ninguno”;saldo=0;

}}

Page 8: Programacion orientada a objetos - unidad 3 herencia

8

PROGRAMACIÓN ORIENTADA A OBJETOSSobre carga de constructores: los constructores también pueden ser sobrecargados, por lo que al utilizar el operador new se debe tener la certeza de cual de los constructores vamos a utilizar: public class Cuenta {

long numero;string nombre;float saldo;public Cuenta () {

numero = 0;nombre = “ninguno”;saldo = 0;

} // primer constructor public Cuenta (int num, string nom, int

sal) { numero = num; nombre = nom; saldo = sal; } // segundo constructor} // clase Cuenta

Page 9: Programacion orientada a objetos - unidad 3 herencia

9

PROGRAMACIÓN ORIENTADA A OBJETOSPrograma ejemplo ya desarrollado

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace herenciaCuenta { public class Cuenta { long numero; string nombre; float saldo; public Cuenta() { numero = 0; nombre = "ninguno"; saldo = 0;

} // Primer constructor

public Cuenta(int num, string nom, int sal) { numero = num; nombre = nom; saldo = sal; } // segundo constructor static void Main(string[] args) { Cuenta prueba = new Cuenta(85,"Jose Antonio",500); Console.WriteLine("Numero de Cuenta: "+prueba.numero); Console.WriteLine("Nombre Cuentahabiente: " + prueba.nombre); Console.WriteLine("Saldo de la Cuenta: " + prueba.saldo); Cuenta prueba2 = new Cuenta(); Console.WriteLine("Numero de Cuenta: " + prueba2.numero); Console.WriteLine("Nombre Cuentahabiente: " + prueba2.nombre); Console.WriteLine("Saldo de la Cuenta: " + prueba2.saldo); Console.ReadKey(); } // Main } // clase Cuenta} //namespace

Page 10: Programacion orientada a objetos - unidad 3 herencia

10

PROGRAMACIÓN ORIENTADA A OBJETOS

• Cuando se finaliza un objeto, se realizan ciertas tareas antes de su destrucción en memoria, para liberarla.

• En C# la liberación de memoria se realiza de manera automática por parte del recolector de basura, por lo tanto la necesidad de crear métodos para destrucción no existe.

Page 11: Programacion orientada a objetos - unidad 3 herencia

Herencia• Desarrolla un programa que utilice herencia para calcular el

volumen de un cubo. Para esto debes utilizar constructores.

Formula:

Donde • V = cubo volumen; y • A = longitud de la cara del cubo

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 12: Programacion orientada a objetos - unidad 3 herencia

Herencia• Tarea: Crear el programa que permita calcular los diferentes tipos

de impuestos que una empresa debe pagar, para esto debes usar todas las estructuras de programación que puedan aplicarse, como ciclos, condiciones, herencia, etc.

• El ejercicio debe contener al menos 3 tipos de impuestos (IVA, ISR, IEPS, etc.)

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 13: Programacion orientada a objetos - unidad 3 herencia

Herencia

• Desarrolla un programa que calcule el perímetro de un polígono de 3 o 4 lados, debe existir un constructor que reciba los valores y haga el cálculo correspondiente, el despliegue del resultado se realiza en un método separado; la fórmula para calcular el perímetro de un polígono es la suma de todos sus lados;

PROGRAMACIÓN ORIENTADA A OBJETOS

Page 14: Programacion orientada a objetos - unidad 3 herencia

Herencia

• Realizar un programa que calcule el perímetro de un triangulo, se debe usar por lo menos un constructor el cual recibirá el valor de los 3 lados para asignarlo a las variables correspondientes, y aplicar herencia entre clases.

PROGRAMACIÓN ORIENTADA A OBJETOS