Tecnologia

Solo disponible en BuenasTareas
  • Páginas : 8 (1881 palabras )
  • Descarga(s) : 7
  • Publicado : 29 de mayo de 2010
Leer documento completo
Vista previa del texto
5.1La herencia es un mecanismo mediante el cual se implementa una jerarquía 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 unajerarquía similar a la que se utiliza en la clasificación taxonómica de las especies biológicas.
Existen dos tipos de herencia:
* herencia simple y
* herencia múltiple.
5.2
En la herencia simple, una clase sucesora hereda de una sola clase antecesora directa (llamada clase base, en C#) , como se muestra en la Figura 5.2.1.
*
* Figura 5.2.1.-Ejemplo de herencia simple
*  
* Las flechas en la Figura 5.2.1 representan la relación "es un" o "es una" , por lo que deben dirigirse desde la clase sucesora hacia la antecesora.

5.3

En la herencia múltiple, al menos una clase sucesora hereda de más de una clase antecesora directa , como se muestra en la Figura 5.3.1.

Figura 5.3.1.- Ejemplo de herencia múltiple
En estecaso, la clase C tiene dos clases antecesoras directas ( A y B )

5.4
El lenguaje de programación C# sólo permite la implementación de la herencia simple. A la clase antecesora se le denomina clase base y a la sucesora se le llama clase derivada.

Ejemplo 1
class Mamífero // Clase base
{
// Cuerpo de la clase Mamífero.
}
class Perro : Mamífero // Perro es una clase derivada de laclase Mamífero.
{
// Cuerpo de la clase Perro.
}
class Gato : Mamífero // Gato es una clase derivada de la clase Mamífero.
{
// Cuerpo de la clase Gato.
}
 
5.5
Al diseñar la estructura de la herencia de una clase puede decidirse cuáles campos y/o métodos de la clase no deben ser accesibles desde las clases derivadas o desde cualquier otra parte del código.
En C# se utilizan losmodificadores de acceso private, protected, public e internal para delimitar el ámbito de un campo o método de una clase.

private
Los miembros marcados como private sólo son accesibles en el ámbito de la clase, no desde las clases derivadas ni desde el código que crea objetos de la clase.

protected
Los miembros marcados como protected son accesibles solamente en la clase que los define ydesde las clases derivadas de ésta.

public
Los miembros marcados como public son accesibles en la clase que los define, desde las clases derivadas y desde el código que crea objetos de la clase.

internal
Los miembros marcados como internal son accesibles dentro del mismo paquete. Un paquete se forma utilizando un espacio de nombres.

La siguiente tabla resume las diferentes formas deaccesibilidad y sus posibles combinaciones.
Accesibilidad | Significado |
public | Acceso no restringido. |
protected | Acceso limitado a la clase contenedora o a los tipos derivados de esta clase. |
internal | Acceso limitado al proyecto actual. |
protected internal | Acceso limitado al proyecto actual o a los tipos derivados de la clase contenedora. |
private | Acceso limitadoal tipo contenedor. |

Notas:
* Sólo se permite un modificador de acceso para un miembro o tipo, excepto para la combinación protected internal .
* Los modificadores de acceso no se pueden utilizar en espacios de nombres. Los espacios de nombres no presentan restricciones de acceso.
* Según el contexto en el que se produce una declaración de miembro, sólo se permite declararciertos tipos de acceso. Si no se especifica ningún modificador de acceso en una declaración de miembro, se utiliza el tipo de acceso predeterminado.
* Los tipos de nivel superior, que no están anidados en otros tipos, sólo pueden tener accesibilidad internal o public . La accesibilidad predeterminada para estos tipos es internal.
 

5.6
El lenguaje C# permite redefinir miembros de la clase...
tracking img