Top Banner
Herencia 1ª parte Apoyo POO
21

Herencia 1ª parte

Jul 18, 2015

Download

Education

Marco Yáñez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Herencia 1ª parte

Herencia 1ª parte

Apoyo POO

Page 2: Herencia 1ª parte

Introducción

• La herencia es una característica de reutilización de código en la programación orientada a objetos.

• Imagine que tiene programada una clase que describe algunas características de un grupo de objetos.

2Mtl. Lourdes Cahuich

Page 3: Herencia 1ª parte

Introducción

• Imagine también que usted tiene que programar un grupo de objetos que tienen todas las características y comportamiento de la clase que ya tiene, pero este grupo tiene –además- ciertas características particulares.

3Mtl. Lourdes Cahuich

Page 4: Herencia 1ª parte

Introducción

• En lugar de programar desde cero una nueva clase que describa estos objetos y sus características principales, es mejor crear una clase que herede de la clase existente, con todas sus propiedades y métodos, y sólo agregar las características adicionales del grupo especial de objetos.

4Mtl. Lourdes Cahuich

Page 5: Herencia 1ª parte

Clase base y clase derivada

• La clase nueva se le llama clase “derivada”

• La clase general se llama clase “base”.

Clase base

Clase D

Clase B

Clase derivada

5Mtl. Lourdes Cahuich

Page 6: Herencia 1ª parte

- nombre:string- edad:int- genero:char

Persona

+ respirar():string+ reir():string

- carrera:string- numeroCuenta:double

+ estudiar():string

Estudiante

6Mtl. Lourdes Cahuich

Page 7: Herencia 1ª parte

Ejemplo herencia básica C#

• Vamos a crear un proyecto en C#, de la misma forma que lo hemos hecho durante el curso.

• Usaremos el archivo de clase que creamos en la actividad práctica 7 (cuando aprendimos a crear archivos de clase)

• Nuestra clase se llamó “MiPrimeraClase”, ahora cambiaremos un poco ese archivo.

7Mtl. Lourdes Cahuich

Page 8: Herencia 1ª parte

Creación clase base / padre / general

• Cambiaremos el nombre de la clase “MiPrimeraClase” por “Persona”.

• Las propiedades y los métodos no cambian.

//Propiedadesprivate string nombre;private int edad;private char genero;

8Mtl. Lourdes Cahuich

Page 9: Herencia 1ª parte

Se agregan los siguientes métodos

//Métodospublic string respirar(){return "inhalar - exhalar";

}public string reir(){return "LOL";

}

9Mtl. Lourdes Cahuich

Page 10: Herencia 1ª parte

Recordamos el constructor

public Persona(){

this.nombre = "sin nombre";this.edad = 0;this.genero = '?';

}

10Mtl. Lourdes Cahuich

Page 11: Herencia 1ª parte

Creación clase derivada / hija / especializada

• Ahora crearemos OTRO archivo de clase, de manera similar a como creamos el anterior.

• Sólo que ahora en el nuevo archivo de clase incluiremos el namespace de la clase Persona

11Mtl. Lourdes Cahuich

Page 12: Herencia 1ª parte

Clase derivada

• Esta nueva clase se llamará “Estudiante” y será una clase derivada de “Persona”

using ClasePersona; Este es el namespace de la clase base

namespace ClaseEstudiante Este es el namespace de la clase derivada que estamos creando

12Mtl. Lourdes Cahuich

Page 13: Herencia 1ª parte

Herencia

public class Estudiante : Persona

Clase baseClase derivada

13Mtl. Lourdes Cahuich

Page 14: Herencia 1ª parte

Clase derivada

public class Estudiante : Persona{

//propiedades particulares del estudianteprivate string carrera;private double numeroCuenta;//métodos particulares del estudiantepublic string estudiar(){

return "Leo, Anoto, Aprendo";}

14Mtl. Lourdes Cahuich

Page 15: Herencia 1ª parte

//métodos "setters/getters"public string leeCarrera(){

return this.carrera;}public void escribeCarrera(string c){

this.carrera = c;}public double leeNumeroCuenta(){

return this.numeroCuenta;}public void escribeNumeroCuenta(double nc){

this.numeroCuenta = nc;} 15Mtl. Lourdes Cahuich

Page 16: Herencia 1ª parte

//constructor clase estudiante

public Estudiante(){

this.carrera = "Aun no se inscribe";this.numeroCuenta = 0;

}}

16Mtl. Lourdes Cahuich

Page 17: Herencia 1ª parte

Creamos interfaz para probar herencia

• Ya que tenemos las clases base y derivada, agregaremos los controles gráficos en el archivo de código de nuestra aplicación, que debe lucir así.

17Mtl. Lourdes Cahuich

Page 18: Herencia 1ª parte

private void btnCreaPersona_Click(object sender, EventArgs e){

Persona humano = new Persona();//Métodos de personalblNombre.Text = humano.leeNombre().ToString();lblEdad.Text = humano.leeEdad().ToString();lblGenero.Text = humano.leeGenero().ToString();//Métodos de estudiantelblCarrera.Text ="";lblMatricula.Text ="";lblMetodoEstudiante.Text = "";metodoPersona = humano.respirar();

}18Mtl. Lourdes Cahuich

Page 19: Herencia 1ª parte

private void btnCreaEstudiante_Click(object sender, EventArgs e){

Estudiante alumno = new Estudiante();//Métodos de personalblNombre.Text = alumno.leeNombre().ToString();lblEdad.Text = alumno.leeEdad().ToString();lblGenero.Text = alumno.leeGenero().ToString();//Métodos de estudiantelblCarrera.Text = alumno.leeCarrera().ToString();lblMatricula.Text = alumno.leeNumeroCuenta().ToString();metodoEstudiante = alumno.estudiar().ToString();

}19Mtl. Lourdes Cahuich

Page 20: Herencia 1ª parte

private void btnMetodoPersona_Click(object sender, EventArgs e)

{lblMetodoPersona.Text = metodoPersona;

}

private void btnMetodoEstudiante_Click(object sender, EventArgs e){

lblMetodoEstudiante.Text = metodoEstudiante;}

20Mtl. Lourdes Cahuich

Page 21: Herencia 1ª parte

21Mtl. Lourdes Cahuich