Polimorfismo
Programación Orientada
a Objetos en C#
Unidad 4.- Polimorfismo
Autor:
Dr. Ramón Roque Hernández
http://ramonroque.com/Materias/pooTec.htm
ramonroque@yahoo.com
Colaborador:
Ing. Bruno López Takeyas, M.C.
www.itnuevolaredo.edu.mx/takeyas
takeyas@itnuevolaredo.edu.mx
1
Pilares de la POO
1. Encapsulamiento
2. Herencia
3. Polimorfismo
2Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
1
Programación Orientada a Objetos con C#
Polimorfismo
• Es la habilidad que poseen los objetos para
reaccionar de modo diferente ante los mismos
mensajes.
• El polimorfismo se refiere a la posibilidad de definir
múltiples clases con funcionalidad diferente, pero con
métodos o propiedades denominados de forma
idéntica, quepueden utilizarse de manera
intercambiable mediante código cliente en tiempo de
ejecución.
• En C# el polimorfismo está íntimamente relacionado
con la sobrecarga y métodos virtuales.
3
Conceptos relacionados
con polimorfismo
• Sobrecarga (overload)
• Herencia
• Sobre-escritura (override)
4
Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
2
Programación Orientada a Objetos conC#
Sobrecarga [ Overload ]
•
La sobrecarga representa diferentes maneras de realizar una
misma acción.
•
En los programas se usa el mismo nombre en diferentes métodos
con diferentes firmas [número, orden y tipo de los parámetros].
•
El código de programación asociado a cada sobrecarga puede
variar.
•
Ejemplos:
– miEmpleado.Contratar(“Juan”, “Ventas”, 2500)
–miEmpleado.Contratar(“Juan”)
– miEmpleado.Contratar(“Juan”, 2500)
5
Ejemplo de Sobrecarga
[ Overload ]
miPuerta.Abrir ( Adentro, Afuera)
miPuerta.Abrir ( Afuera, Adentro)
miPuerta.Abrir ( )
6
Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
3
Programación Orientada a Objetos con C#
Herencia
Vehiculo
CaballosDeFuerza : int
Arrancar() : void
Detener() : void
HerenciaAutomovil
Superclase
(Clase base)
(Clase padre)
(Clase madre)
Subclases
(Clases derivadas)
(Clases Hijas)
PalaMecanica
CantidadDePuertas : int
PesoMaximoDeLevante : int
Acelerar(int cuanto) : void
MoverPala(string direccion) : void
7
Anulación / Sustitución /
Sobreescritura
[ Overriding ]
• Sucede cuando una clase “B” hereda
características de una clase “A”, perola
clase “B” re-define las características
heredadas de “A”.
• Propiedades
y
métodos
pueden
heredarse de una superclase. Si estas
propiedades y métodos son re-definidos
en la clase derivada, se dice que han
sido “Sobreescritos”.
8
Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
4
Programación Orientada a Objetos con C#
Anulación / Sustitución /
Sobreescritura
[Overriding ]
Articulo_Academico
Propiedades:
…
…
…
Metodos:
Abrir ( )
...
miLibro y miLaptop heredan el método
Abrir ( ) pero NO lo utilizan; sino que
cada uno lo implementa nuevamente de
manera distinta.
Herencia
Un libro y una Laptop se abren
de diferente manera.
miLibro.Abrir( )
miLaptop.Abrir( )
9
10
Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
5Programación Orientada a Objetos con C#
11
Ejemplo de polimorfirmo
paramétrico
• Una clase define
varios métodos con el
mismo nombre pero
diferente firma
(sobrecarga)
• Se elige el método de
acuerdo a la firma
aplicada
• La sobrecarga del
constructor es un
ejemplo de ello
12
Dr. Ramón Roque Hernández
M.C. Bruno López Takeyas
6
Programación Orientada a Objetos con C#
Otroejemplo de
polimorfismo paramétrico
La misma clase tiene
varios métodos con
el mismo nombre
pero diferentes
firmas con diferentes
tipos de datos
13
Ejemplo de polimorfismo
de sobrecarga (overload)
• Diferentes clases
tienen un método con
el mismo nombre,
pero comportamiento
diferente
• Se aplica el método
de acuerdo al objeto
en que se trabaje
14
Dr. Ramón Roque...
Regístrate para leer el documento completo.