2. 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
3. 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
4. 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
5. 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
7. 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
8. Creación clase base / padre / general
• Cambiaremos el nombre de la clase
“MiPrimeraClase” por “Persona”.
• Las propiedades y los métodos no cambian.
//Propiedades
private string nombre;
private int edad;
private char genero;
8Mtl. Lourdes Cahuich
9. Se agregan los siguientes métodos
//Métodos
public string respirar()
{
return "inhalar - exhalar";
}
public string reir()
{
return "LOL";
}
9Mtl. Lourdes Cahuich
11. 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
12. 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
17. 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
18. private void btnCreaPersona_Click(object sender, EventArgs e)
{
Persona humano = new Persona();
//Métodos de persona
lblNombre.Text = humano.leeNombre().ToString();
lblEdad.Text = humano.leeEdad().ToString();
lblGenero.Text = humano.leeGenero().ToString();
//Métodos de estudiante
lblCarrera.Text ="";
lblMatricula.Text ="";
lblMetodoEstudiante.Text = "";
metodoPersona = humano.respirar();
}
18Mtl. Lourdes Cahuich