Sei sulla pagina 1di 12

Herencia en c#

En este post veremos uno de los pilares de la


POO el cual es la herencia. La herencia en
programacin orientada a objetos nos permite
generar una funcionalidad de una clase
existente al crear una nueva clase que derive
de ella.
En c# no se permite la herencia mltiple, lo
que quiere decir que no se puede heredar de
mas de una clase a la vez; si lo vemos de una
forma sencilla la herencia no es mas que la
facultad de un objeto de heredar
caractersticas de otro.
por que se hereda?; si lo vemos del lado de
programacin es para poder utilizar mtodos,
propiedades (campos) y variables de la clase
padre en el la clase hijo.
Comencemos con un ejemplo muy simple de
herencia, tengo las siguientes clases que
tomare para mi ejemplo.

Tenemos una clase Profesor que hereda de la


clase Personal ya echa quedaran de esta
forma:

La clase tendr tres atributos Id, Nombre y


Apellido, y un constructor. Ahora lo que
haremos ser que profesor herede de la clase
Personal de esta forma:

Para hacer una herencia en c# entre dos clase


solo hay que utilizar los dos puntos seguidos
del nombre de la clase padre.

Hoy solo hace falta crear el constructor que


me tome los parmetros de la clase padre de
esta forma.

Para decirle que tome los atributos de la clase


padre haremos uso de la palabra clave base y
tenemos que colocar los parmetros que
tenga la clase padre.
Como puedes ver no tengo atributos en la
case hijo, ahora solo tengo que hacer esto en
el Program de la aplicacin de consola.

Como podemos apreciar aunque la clase


profesor no contiene campos como hereda de
la clase personal contiene los campos del
padre si los llenamos no habr problemas.

En este momento tambin podramos llenar la


clase personal y no tendramos problemas al
hacerlo.

Solo hace falta mostrarlos en la consola de


esta forma:

Nos mostrara esto:

Para comprobar que la clase hijo es


independiente de la clase padre
modificaremos al hijo agregndole un campo
mas el cual ser la direccin quedando as:

Si nos vamos al program ahora la clase hijo


profesor dar un error.

Esto se da por que ahora tiene los atributos


del padre adems de uno propio, corrijamos
ese error agregando el nuevo atributo y
vemos el resultado en consola.

Miremos que en este momento la clase hijo


tiene un atributo mas que la clase padre, lo
cual nos da otra caracterstica nueva del hijo
que no tiene el padre. Corramos esto y
veamos el cambio.

Como comentamos al principio es posible


heredar muchas caractersticas del padre en el
hijo veamos unas de ellas, primero es posible
utilizar variables que fueron inicializadas en el
padre atraves del hijo veamos creemos una
variable en Personal:

En la clase padre inicialice esta variable hoy


puedo hacer esto en el program.

Si corro esto me dar lo siguiente:

Y por ultimo para terminar veamos como se


trata un mtodo en este tipo de asociacin.
Primero crearemos un mtodo en la clase
personal como lo hicimos con la variable.

Este mtodo solo me permitir sumar dos


nmeros pero en la clase Profesor quiero que
me sume tres de esta forma:

Veamos en el program como queda.

Como se puede ver en las imgenes puedo


utilizar el mtodo del padre y el que modifique
en el hijo esto se debe a que ahora el mtodo
esta sobrecargado, utilizare el que modifique
en el hijo el cual que me suma tres nmeros:

Si lo corremos se veria lo siguiente;

Bueno espero que te sirva

Potrebbero piacerti anche