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: