Documente Academic
Documente Profesional
Documente Cultură
NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Programa de la asignatura:
Programacin .NET II
Clave:
150930934
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
ndice
Presentacin de la unidad ................................................................................................. 3
Propsitos.......................................................................................................................... 3
Competencia especfica..................................................................................................... 4
2.1. Herencia en C Sharp ................................................................................................. 4
2.1.1. Herencia simple.................................................................................................... 7
2.1.2. Clases abstractas ............................................................................................... 14
2.1.3. Clases selladas .................................................................................................. 22
Actividad 1. Herencia ....................................................................................................... 26
2.1.4. Interfaces ........................................................................................................... 27
Actividad 2. Herencia mediante C Sharp.......................................................................... 36
2.2. Polimorfismo en C Sharp ....................................................................................... 37
2.2.1. Mtodos polimrficos.......................................................................................... 39
2.2.2. Mtodos genricos ............................................................................................. 48
Actividad 3. Mtodos polimrficos .................................................................................... 50
2.3. Sobreescritura en C Sharp ..................................................................................... 51
2.3.1. Modificador virtual ............................................................................................. 52
2.3.2. Modificador override .......................................................................................... 53
Autoevaluacin ................................................................................................................ 56
Evidencia de aprendizaje. Herencia simple, polimorfismo y sobreescritura...................... 57
Cierre de la unidad .......................................................................................................... 58
Para saber ms ............................................................................................................... 58
Fuentes de consulta ........................................................................................................ 59
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Propsitos
Al trmino de esta unidad logrars:
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Competencia especfica
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
pueden crear utilizando las clases existentes como punto de partida (Troelsen, 2010, p.
219).
A continuacin se expone un ejemplo sencillo de la vida real para entender el trmino y el
concepto.
Se sabe con certeza que un gato es un animal mamfero. Si se requiere representar esta
relacin, en una clase C Sharp mediante herencia, una forma muy clara se muestra a
continuacin.
Mamferos
Gato
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se omiten los acentos por cuestiones propias de la programacin en las siguientes palabras que
integran la tabla ejemplo de herencia: Crculo, Tringulo, Rectngulo, Prstamo y Automvil.
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Hija1
Herencia simple
Nota: El smbolo:
Padre1
Hija2
Padre2
Hija
Herencia mltiple
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
segn lo sealado en la pgina web de Microsoft (MSDN, 2013 c), como Java, C# no
admite herencia mltiple, lo que significa que las clases no pueden heredar ms de una
clase.
Lo que s es posible es tener herencia lineal mltiple. Esto se muestra en la siguiente
figura.
Clase1
Clase2
Niveles
de
herencia
Clase3
Para fines prcticos, Clase1 es padre de Clase2, y sta a su vez es padre de Clase3. Es
posible generar cualquier jerarqua de clases (cualquier nivel) en este proceso de
herencia, pero siempre respetando el concepto herencia simple: Slo puede heredarse de
un padre a una vez. Como se muestra en la imagen anterior, Clase1 es padre de Clase2,
y ste a su vez es padre de Clase3.
El ejemplo anterior es un proceso acumulativo. Clase2 tendr atributos que recibir de
Clase1. Clase3 tendr atributos que recibir de la Clase2 y Clase1. Esto se repetir en
todas las clases situadas en los niveles de herencia.
Desde el punto de vista de programacin de C Sharp, el concepto de herencia se logra
con el smbolo :. A continuacin se ofrece un ejemplo.
Se tienen dos clases, Persona y Docente. La primera debe heredar de la segunda.
El enunciado en C Sharp puede representarse as:
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
El constructor que tiene la clase Docente llama al constructor padre con el comando base
y enva los parmetros que recibe, los cuales deben ser los mismos en posicin y tipo.
Esto indica que se cumple la siguiente regla en la programacin de herencia en lenguaje
C Sharp: Un constructor a pesar de ser un mtodo pblico es el nico que no se hereda y
necesita ser llamado explcitamente desde la clase hija por la palabra base, con los
argumentos entre parntesis que se le envan (Troelsen, 2010, p. 229).
10
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
11
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Como se puede ver, el constructor ahora recibe cuatro parmetros, de los cuales tres
enva al constructor padre, el ltimo lo asigna l mismo. Cuando un constructor hijo llama
al padre deben respetarse las siguientes reglas:
1) El nmero de parmetros enviados y su tipo debern ser los mismos que los
que recibe el padre (el nombre no importa, slo el tipo y el nmero).
2) Despus de invocar a su padre actualizar sus propios datos (tambin
puede realizar otro tipo de procesos, pero siempre despus de llamar al
constructor padre).
12
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
13
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Mamferos
Gato
La clase Mamfero es una clase abstracta porque en el mundo real no existe un ente
especfico llamado mamfero. Es el nombre genrico con el que se clasifica a cierto tipo
de animales; sin embargo, cuando se observa un perro, un gato o un delfn, puede decirse
que son mamferos; pero por s mismo el concepto mamfero no indica un animal en
especfico; es decir, se refiere a una entidad inexistente en la realidad.
A esas entidades que no deben ser instanciadas porque no representan una realidad son
declaradas como clases abstractas para que el usuario no las instancie y como
consecuencia no las utilice (Ferguson, Patterson y Beres, 2005, p. 267).
Una definicin clara de lo que es una clase abstracta se cita en Microsoft (MSDN, 2013b),
en la Gua de programacin de C#, el apartado de Clases y miembros de clase
abstractos y sellados, donde se seala que el propsito de una clase abstracta es
proporcionar una definicin comn de una clase base que mltiples clases derivadas
pueden compartir. Por ejemplo, una biblioteca de clase puede definir una clase abstracta
que se utiliza como parmetro para muchas de sus funciones y solicitar a los
programadores que utilizan esa biblioteca que proporcionen su propia implementacin de
la clase mediante la creacin de una clase derivada.
La palabra clave abstract permite crear clases nicamente con propsitos de herencia,
pero estas no se pueden instanciar.
14
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
15
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
16
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
17
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
18
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
19
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
20
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Como se puede ver en el ejemplo, cuando una clase hereda un mtodo abstracto y debe
implementarlo, debe incluirse la palabra reservada override. De esta manera se indica
que el mtodo tendr cdigo para realizar lo solicitado en esta clase. El programa
principal en este ejemplo tendr la siguiente implementacin:
La ejecucin es la siguiente:
Nombre: Luisa
Sexo: F
Edad: 30
Tarjeta: 57
Identificacin con tarjeta nmero: 57
Una clase abstracta puede heredarse por otra abstracta. Significa que ninguna de ellas
puede instanciarse. Si se traslada al mundo real, este principio puede comprenderse en la
siguiente jerarqua de clases:
Vertebrados
<<Abstracta>>
Mamferos
<<Abstracta>>
Perro
Tigre
Aves
<<Abstracta>>
Tucn
Canario
Peces
<<Abstracta>>
Trucha
Sardina
21
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Al observar esta jerarqua, pueden obtenerse varias conclusiones sobre las distintas
clases:
1)
2)
3)
4)
5)
6)
Las clases han generado una jerarqua que permiten relacionar objetos que comparten
caractersticas similares, y separar objetos que no lo hacen.
Surge aqu una pregunta: si la clase Vertebrados tiene un mtodo abstracto, qu
debe hacer Mamferos cuando herede este mtodo?
Tiene dos opciones:
1) Volverla a declarar como mtodo abstracto; esto se logra volviendo a escribirla tal
y como fue definida en la clase base, sin codificacin. El codificarla ser trabajo de
la siguiente clase en la jerarqua de la herencia.
2) Sobreescribirla para darle funcionalidad, como se indic en el ejemplo de
Persona-Docente.
22
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Persona
<<Abstracta>>
Docente
Jefe
<<Sellada>
23
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
La clase Jefe tendr un dato miembro privado con el nombre de departamento, de tipo
string; ste ser recibido en el constructor. El cdigo de esta clase se muestra a
continuacin:
La palabra sealed antes de class indica que esta clase no puede ser derivada; es
decir, est sellada a la jerarqua de herencia. Algunos autores, en otros
lenguajes, llaman a este concepto clase Final porque la instruccin obliga a que
se termine una jerarqua lineal de varios niveles.
24
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
25
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Actividad 1. Herencia
El propsito de esta actividad es que distingas las caractersticas de los siguientes tipos
de trminos: clases estndares, clases abstractas, clases selladas.
Segn lo desarrollado en el Tema 2.1. Herencia en C Sharp, sta simplifica la
reutilizacin de cdigo cuando una clase hija recibe los mtodos y datos miembro de una
clase padre. En esta actividad identificars los diferentes usos de clases y los alcances
de cada una de ellas.
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.
4.
26
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
2.1.4. Interfaces
En los subtemas anteriores se coment que la herencia mltiple no existe en C Sharp,
pero que sta puede ser simulada al utilizar Interfaces. Por qu se utiliza el trmino
simular?, porque una interfaz no hereda datos o mtodos miembro a la clase que la
implementa, slo comportamientos; es decir, indica qu, pero no cmo se debe hacer
Trey Nash en su libro Accelerated C# 2010 describe una interfaz como un contrato que
nos permite acordar una serie de funcionalidades en una clase, esto porque una interfaz
en C Sharp Contiene slo las firmas de los mtodos [], la implementacin de ellos se
hace en la clase que implementa la interfaz, segn se menciona en Microsoft (MSDN,
2013 d), en el apartado Interface (Referencia de C#).
En otras palabras, una interfaz es una clase especial que slo indica qu mtodos debe
tener, pero no dice el cmo debe programarse. Por eso una interfaz slo tiene la firma de
los mtodos (es importante recordar que, segn se revis en la Unidad 1, la firma de un
mtodo es su alcance, el tipo de datos que devuelve, su nombre y los parmetros que
recibe).
A continuacin se expone lo ya mencionado con el siguiente ejemplo:
Recordars que en el subtema anterior 2.1.3. Clases selladas, se desarroll una jerarqua
de clases Persona-Docente-Jefe. En este caso, se requiere crear la herencia de Alumno
que deriva de Persona. El primero tendr nombre, sexo y edad, pero se necesitan dos
mtodos adicionales de tipo string. Un nmero de control y una carrera de tipo protegido,
esta nueva relacin Persona-Alumno genera en la clase Alumno el siguiente cdigo:
27
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Para crear la herencia de Alumno que deriva de la clase Persona, se supone la existencia
de otra tambin derivada de Persona, llamada Movilidad. Una instancia de Movilidad
representar a un alumno con nmero de control y carrera, pero debe tener tambin un
campo que represente la institucin de procedencia (en los institutos tecnolgicos la
movilidad significa que un alumno puede salir de una institucin, tomar una o varias
materias en otros tecnolgicos y regresar a su institucin de origen tantas veces y en
instituciones diferentes como l lo desee); por el contrario, un alumno representa a un
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software
28
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
29
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
30
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Cuando un alumno ingresa a esa institucin existe un convenio importante con l. Puede
cambiar en cualquier momento de carrera esto tambin es vlido con alumnos de
movilidad, pero el proceso es diferente al que se seguira en el caso de los primeros,
quienes al cambiar de carrera slo deben indicar el inters. En el caso de los segundos,
es necesario generar un nmero de oficio, que debe llevar a la institucin de procedencia,
con el siguiente formato: ORI-aaaammdd-numerodecontrol; donde el primer segmento
debe sustituirse por el ao, mes y da, respectivamente.
Esta es una situacin tpica que puede ser representada por una interfaz. Este Convenio
(como se nombrar a esta interfaz) codificado se muestra a continuacin:
Docente
Convenio
<<Interfaz>>
Alumno
Movilidad
Jefe
<<Sellada>
31
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
32
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
33
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Nombre: Juan
Sexo: M
34
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Edad: 23
N. Control: 00040104
Carrera: Mecatrnica
Procedencia de: Veracruz
Cambio de carrera con el oficio: ORI-2013511-00040104
Para concluir este tema, se recapitulan los siguientes puntos:
Las interfaces permiten definir caractersticas de comportamiento o capacidades,
que se aplican a las clases sin tener en cuenta su jerarqua. Desde un punto de
vista conceptual, las interfaces son contratos entre dos trozos de cdigo distintos
(Archer, 2010, p. 151). As, aunque dos clases implementen la misma interfaz,
esto no significa que tenga alguna jerarqua.
Cuando se tiene definida una interfaz y una clase la toma para dar funcionalidad al
trmino correcto en el que la clase implementa la interfaz, aunque algunos autores
utilizan como sinnimo la clase heredada de la interfaz, esto conceptualmente no
es cierto (Archer, 2010, p. 152).
Dado que las interfaces definen un contrato, cualquier clase que implemente una
interfaz tiene que definir todos y cada uno de los mtodos, de lo contrario el cdigo
no se compilar (Archer, 2010, p. 153). En otras palabras, si una interfaz propone
cinco mtodos, la clase que implemente debe implementar esos cinco mtodos o
el programa no se ejecutar.
Mediante la utilizacin de interfaces se pueden implementar caractersticas de
comportamiento mltiples en una nica clase. En C#, una clase puede derivar de
una clase nica, pero puede implementar tantas interfaces como necesite (Archer,
2010, pp. 155-156).
Ahora que has concluido el primer tema, realiza las actividades de aprendizaje.
35
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
36
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Clase
Cuenta
<<Abstract>>
Mtodos
<<Abstract>>Deposito()
<<Abstract>>Retiro()
Clase
DeAhorros
Clase
Inversiones
37
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
de herencia, donde se toma como clase base DeAhorros y de ella deriva Maestra. Esto
se observa a continuacin:
Clase
Cuenta
<<Abstract>>
Mtodos
<<Abstract>>Deposito()
<<Abstract>>Retiro()
Clase
DeAhorros
Clase
Inversiones
Clase
Maestra
Ocultar los mtodos del padre (esto se revis en el subtema 2.1.3. Clases
selladas). Al utilizar la palabra reservada new antes de la nueva definicin del
mtodo, se ocultar el de su padre y quedar en funcin el mtodo de clase
derivada.
Al cambiar el tipo de parmetros que reciba el mtodo, la clase derivada tendr
dos mtodos: el que hereda de su padre y el suyo propio, un caso de
38
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Segn Deitel y Deitel (2007), un mtodo polimrfico o polimorfo se define como una
funcin que tiene la capacidad de responder al mismo nombre con diferente operatividad
en funcin de los parmetros utilizados en su invocacin.
En la siguiente seccin se estudiar el uso del polimorfismo en C Sharp.
Polimorfismo paramtrico
Para entender el polimorfismo paramtrico se explica cmo hacer mtodos polimrficos
en una clase sin herencia.
39
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se requiere desarrollar una clase llamada permetro, sta tendr varios mtodos que
permitirn calcular el derredor de las siguientes figuras irregulares.
Se conoce:
Se conoce:
Se conoce:
Se conoce:
L1, L2 y L3
L1, L2, L3 y L4
40
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
41
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
42
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se definir una nueva clase llamada, EcuacionCuadratica, con el mtodo evalua(), que
recibir como parmetros a, b, c y x, y devolver el valor de y, segn la siguiente
relacin:
y = a x2 + b x + c
Esta clase ser derivada de la anterior. Finalmente, se crear una clase llamada
EvaluaEcuaciones que heredar las anteriores y permitir evaluar ecuaciones
cuadrticas y lineales. Esto puede observarse en el siguiente diagrama de herencia:
Clase
EcuacionLineal
Clase
EcuacionCuadratica
Clase
EvaluaEcuaciones
43
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
y=3x+5
Para x=3
y = 4 x2 4 x + 3
Para x=3.3
44
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Polimorfismo de inclusin
Segn el MSDN (2013 i), A travs de la herencia, una clase puede utilizarse como su
propio tipo o como cualquier tipo de una clase padre. Cuando un objeto se utiliza como
un tipo que no es ella misma sino de una clase padre, se tiene un polimorfismo a nivel
clase. Este concepto ser ms fcil de entender con el ejemplo que se expone a
continuacin.
Una clase abstracta, llamada Figura, tendr dos mtodos miembro, Perimetro() y
Area(), ambos abstractos. Esta clase tendr un constructor que recibir un valor de tipo
doble y lo guardar en un dato miembro protegido. Se heredar a una clase hija llamada
Circulo, que recibir en su constructor el radio e implementar los mtodos: Perimetro()
y Area(), que calcularn el permetro y el rea del crculo. El diagrama de herencia se
observa a continuacin.
<<Abstract>>
Figura
Clase
Circulo
45
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
46
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Clase
Docente
47
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se observa que sus parmetros son dos variables de tipo primitivo int, los cuales se
utilizan como parte de los procesos dentro del mtodo.
Un parmetro tipo es un smbolo que se puede definir y utilizar como una variable, y
adquiere su valor definitivo en el momento en que se utiliza el mtodo, tal como se
48
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
49
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
50
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
51
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
En este tema se revisar el concepto de sobreescritura. Se dice que una clase hija
sobreescribe un mtodo de la clase padre cuando lo define con las mismas caractersticas
(nombre, nmero y tipo de argumentos) que el de la superclase. En ese caso, el mtodo
al que se tiene acceso es al ltimo, el que redefini al primero.
Para decirlo de una forma simple, una sobreescritura es la capacidad que tienen las
clases derivadas para cambiar la funcionalidad que han heredado de sus clases padre,
mediante la modificacin del cdigo que tiene en su definicin (Griffiths, 2010, p. 112) (.
Existen dos formas de realizar una sobreescritura en C Sharp: mediante los indicadores
virtual y override. En ambos casos, la idea es cambiar la funcionalidad de un mtodo
previamente escrito dentro de una clase padre.
La sobreescritura, junto con la caracterstica de polimorfismo, son dos herramientas que
permiten ajustar los objetos para que representen de una manera ms fiel el mundo real.
52
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
53
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se crea una clase llamada Crculo que hereda de dimensiones y sobreescribe el mtodo
rea de la clase dimensiones. Este cdigo se muestra a continuacin:
Se crea una clase llamada Esfera que hereda dimensiones y sobreescribe el mtodo
rea de la clase dimensiones. Este cdigo se puede analizar a continuacin:
54
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Se crea una clase llamada Cilindro que herede de dimensiones y sobreescriba el mtodo
virtual rea de la clase dimensiones. El cdigo es el siguiente:
55
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Autoevaluacin
Antes de desarrollar la evidencia de aprendizaje, realiza la autoevaluacin con el fin de
realizar un repaso general de la unidad; as como detectar aquellos temas que no has
56
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
57
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Cierre de la unidad
En esta unidad se muestra la aplicacin de conceptos tales como herencia, polimorfismo y
sobreescritura en lenguaje C Sharp.
La herencia es uno de los pilares de la programacin orientada a objetos, porque permite
la reutilizacin del cdigo y la generacin de clases derivadas ms especializadas.
En una relacin de herencia el primer elemento se llama clase padre o base; el segundo,
clase hija o derivada; este ltimo puede usar los mtodos, propiedades y variables de la
primera. Tambin es capaz de modificar los mtodos y crear as un nuevo
comportamiento.
El polimorfismo significa que conviven varios mtodos con el mismo nombre, pero con
comportamientos diferentes, lo que permite crear distintas funcionalidades.
La sobreescritura es consecuencia de la herencia. Una clase hija puede reescribir,
recodificar, los mtodos heredados, darles una funcionalidad diferente para lo que fueron
definidos.
En esta unidad se han revisado conceptos que permiten otorgar mayor funcionalidad a los
programas que realizars en otras materias y, en un futuro prximo, en la industria. Otros
temas ms complejos de la programacin orientada a objetos se revisarn en la Unidad 3.
Manipulacin de errores y conjuntos de objetos.
Para saber ms
En esta seccin encontrars algunos recursos que es recomendable consultes, pues
ofrecen ms informacin acerca de los principales conceptos revisados, tales como
herencia, polimorfismo, interfaces, sobreescritura:
58
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Fuentes de consulta
Griffiths, Ian; Adams, Matthew & Liberty, Jesse (2010). Programming C# 4.0.
Editorial OReilly, Estados Unidos
59
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
__________________________________i. Polimorfismo en C#
http://msdn.microsoft.com/es-es/library/ebca9ah3(v=vs.80).aspx
Sharp, John. (2010). Microsoft Visual C# 2010. Estados Unidos: Microsoft Press.
60
Programacin .NET II
Unidad 2. Herencia y polilmorfismo en el lenguaje de programacin
CSharp
Troelsen, A. (2010). Pro C# 2010 and the .NET 4 Platform. Estados Unidos:
Apress.
61