Escolar Documentos
Profissional Documentos
Cultura Documentos
Actividad 1. Herencia
5to. Semestre
NDICE
Instrucciones....................................................................................................................... 3
Cuadro comparativo de tipo de clases................................................................................4
Ejemplificacin de herencia mltiple, simple y simple mltiple............................................6
Ejemplo en C# clase........................................................................................................... 9
Ejemplo en C# clase interface...........................................................................................10
Ejemplo en C# clase abstract............................................................................................11
Ejemplo en C# clase sealed..............................................................................................12
Conclusiones..................................................................................................................... 14
Fuentes de Consulta.........................................................................................................15
Instrucciones
1. Elabora un cuadro comparativo de las caractersticas de las siguientes clases:
normales, interfaces, abstractas y selladas.
2. Explica en tu cuadro la definicin, uso, alcance y caractersticas de cada uno de
los tipos clase, que permiten tener una jerarqua de acuerdo a la realidad de los
objetos en el mundo. Agrega ejemplos de cada uno, as como tus propias
conclusiones sobre semejanzas y diferencias entre ellos.
3. Identifica el uso en la vida real de herencia simple, mltiple y simple-mltiple.
de dar una implementacin de todos los miembros que hereda de esta, y no como ocurre con las clases abstractas donde es posible no darla si se define como abstracta tambin l
z.
La herencia es un mecanismo mediante el cual se implementa una jerarqua de clases. Una clase antecesora (clase base) hereda atributos y
comportamientos a una clase sucesora (clase derivada), a la que se pueden agregar nuevos atributos y comportamientos. A su vez, la clase
derivada puede heredar sus atributos y comportamientos a otra nueva clase, de manera tal que se puede establecer una jerarqua similar a la
que se utiliza en la clasificacin taxonmica de las especies biolgicas.
En la herencia simple, una clase sucesora hereda de una sola clase antecesora directa (llamada clase base, en C#), como se muestra en la
siguiente Figura
Las flechas en la Figura anterior representan la relacin "es un" o "es una" por lo que deben dirigirse desde la clase sucesora hacia la
antecesora.
La herencia es siempre transitiva: una clase puede heredar caractersticas de superclases que se encuentran muchos niveles ms arriba en la
jerarqua de herencia.
Ejemplo: Si la clase Perro es una subclase de la clase Mamfero, y la clase Mamfero es una subclase de la clase Animal, entonces el Perro
heredar atributos tanto de Mamfero como de Animal.
En C#, el operador que equivale a extends e implements en Java, define la herencia e implementacin de interfaces.
Como Java, C# no admite herencia mltiple, lo que significa que las clases no pueden heredar ms de una clase. Sin embargo, se pueden
utilizar interfaces para ese propsito, de la misma manera que en Java.
Las interfaces a travs de sus contratos pueden crear el efecto de herencia mltiple, por ejemplo:
Obsrvese cmo la clase Subclase hereda de la clase Superclase, tambin implementa las interfaces Interfaz1, e Interfaz2; por lo tanto,
podemos decir que hay una relacin de es-un en esta jerarqua de herencia. As:
Ejemplo en C# clase
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ejem_Clase
{
class Persona //Declaracin de la clase.
{
string nombre; //Una variable que contendr el nombre.
public string Nombre //Propiedad: una forma de acceder al nombre de una persona.
{
get { return nombre; }
set { nombre = value; } //variable especial value
}
10
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ejem_Interface
{
internal class Program
{
public interface Imprimible //Se crea interface Imprimible.
{
void Imprimir();
}
public class Doumento : Imprimible //Se crea clase Documento y se implementa la interface Imprimible .
{
string contenido;
11
12
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ejem_Abstraccion
{
class Program
{
public abstract class Empleado //Se declara clase abstracta Empleado.
13
{
protected string nombre;
public class Administrador: Empleado //Se crea una clase derivada denominada Administrador.
{
public Administrador(string nombre) : base(nombre) {} //Se crea constructor.
14
class TestEmployeeAndManager
{
public static void Main(string[] args)
{
Console.Title = "DPRN2_U2_A1_JOCM"; //Se le da un nombre a la ventana.
Empleado e = new Administrador("Arturo Corona Luna"); //Se crea un segundo objeto de nombre e.
e.Mostrar(); //Invoca al mtodo Mostrar de la clase Administrador e imprime el nombre del empleado en pantalla..
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ejem_sealed
{
sealed class Punto //Se crea la clase Punto y se define como clase sellada.
{
private int a; //Atributos.
private int b;
16
{
get { return this.a; } //Valor de retorno.
set { this.a = value; } //La propiedad A, mediante el modificador set, inicializa el atributo a con el valor que llega del objeto.
}
17
Observe que se utiliza el modificador de acceso private en los miembros de clase interna a y b. Si utilizamos el modificador protected se
generara un aviso del compilador, debido a que los miembros protegidos son visibles desde las clases derivadas, y, como ya sabemos, las
clases selladas no tienen ninguna clase derivada.
18
Conclusiones
La herencia no es ms que la facultad de un objeto de heredar caractersticas de otro; es
decir, utilizar mtodos, propiedades (campos) y variables de la clase padre en el la clase
hijo.
La herencia presenta la clara ventaja de la reutilizacin de cdigo, adems nos permite
establecer relaciones y escribir menos lneas de cdigo, debido a que no es necesario,
por ejemplo, volver a declarar e implementar mtodos
Una clase puede implementar ms de un interfaz, lo que hemos visto que no es posible
con herencia, y ser heredera al mismo tiempo de otra clase, con lo que se consigue
simular herencia mltiple.
19
Fuentes de Consulta:
Groussard, T. (2011). C# 4: Los fundamentos del lenguaje - Desarrollar con Visual
Studio 2010. Barcelona: ENI.
Microsoft. (2015). 10.1.1.1 Clases abstractas. Recuperado el 22 de abril de 2015
de
https://msdn.microsoft.com/es-es/library/aa645615(v=vs.71).aspx
Microsoft. (2015). Clases (Gua de programacin de C#). Recuperado el 22 de
abril de 2015 de
https://msdn.microsoft.com/es-es/library/x9afc042.aspx
Microsoft. (2015). Clases y miembros de clase abstractos y sellados (Gua de
programacin de C#). Recuperado el 24 de abril de 2015 de
https://msdn.microsoft.com/es-es/library/ms173150.aspx
Microsoft. (2015). class (Referencia de C#). Recuperado el 25 de abril de 2015 de
https://msdn.microsoft.com/es-es/library/0b0thckt.aspx
Microsoft. (2015). Herencia y clases derivadas (C# y Java). Recuperado el 25 de
abril de 2015 de
https://msdn.microsoft.com/es-mx/library/ms228387(v=vs.90).aspx
Microsoft. (2015). Modificadores de acceso (Gua de programacin de C#).
Recuperado el 26 de abril de 2015 de
https://msdn.microsoft.com/es-es/library/ms173121.aspx
Microsoft. (2015). sealed (Referencia de C#). Recuperado el 26 de abril de 2015
de
https://msdn.microsoft.com/es-es/library/88c54tsw.aspx
20