Documentos de Académico
Documentos de Profesional
Documentos de Cultura
04 - Polimorfismo
04 - Polimorfismo
Pilares de la POO
1. Encapsulamiento 2. Herencia 3. Polimorfismo
2
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 mltiples clases con funcionalidad diferente, pero con mtodos o propiedades denominados de forma idntica, que pueden utilizarse de manera intercambiable mediante cdigo cliente en tiempo de ejecucin. En C# el polimorfismo est ntimamente relacionado con la sobrecarga y mtodos virtuales.
3
Sobrecarga [ Overload ]
La sobrecarga representa diferentes maneras de realizar una misma accin. En los programas se usa el mismo nombre en diferentes mtodos con diferentes firmas [nmero, orden y tipo de los parmetros]. El cdigo de programacin asociado a cada sobrecarga puede variar. Ejemplos: miEmpleado.Contratar(Juan, Ventas, 2500) miEmpleado.Contratar(Juan) miEmpleado.Contratar(Juan, 2500)
5
miPuerta.Abrir ( )
6
Herencia
Vehiculo CaballosDeFuerza : int Arrancar() : void Detener() : void Herencia Superclase (Clase base) (Clase padre) (Clase madre)
Anulacin Sustitucin Sobreescritura [ Overriding ] Sucede cuando una clase B hereda caractersticas de una clase A, pero la clase B re-define las caractersticas heredadas de A. Propiedades y mtodos pueden heredarse de una superclase. Si estas propiedades y mtodos son re-definidos en la clase derivada, se dice que han sido Sobreescritos.
8
miLibro y miLaptop heredan el mtodo Abrir ( ) pero NO lo utilizan; sino que cada uno lo implementa nuevamente de manera distinta.
10
11
14
Las clases derivadas redefinen los mtodos y/o propiedades heredados mediante la sobreescritura (override) 15
Polimorfismo
POLI = Mltiples MORFISMO = Formas
ObjetoEnFormaDeCaja
miRegalo.Abrir( )
miCofre.Abrir( )
18
&!todos 'irtuales
Son mtodos en la clase base pensados para ser sobre-escritos por subclases. Para declararlos, se utiliza la palabra reservada virtual; para sobreescribirlos, en la subclase se utiliza la palabra reservada override. Un mtodo virtual PUEDE ser sobreescrito, o utilizarse tal como est. Solo se puede utilizar override si el mtodo en la clase base est marcado como virtual, abstract u override. El mtodo override debe mantener el mismo nivel de acceso que el mtodo Virtual correspondiente
19
Ejemplo virtual(override
class Vehiculo { public virtual void Arrancar() { System.Console.WriteLine("Arrancar...Clase Vehiculo"); } } class Carro: Vehiculo { public override void Arrancar() { System.Console.WriteLine("Arrancar....Clase Carro"); } } class Programa { static void Main() { Carro miCarro = new Carro(); miCarro.Arrancar(); System.Console.ReadLine(); } } Ejecucin del programa Arrancar....Clase Carro 20
10
21
override sealed
Agregar sealed a un mtodo override impide la futura sobre-escritura de ese mtodo, proporcionando una implementacin final.
class Aparato { public virtual void Prender() { System.Console.WriteLine(" Prendiendo el Aparato "); } } class TV : Aparato { public override sealed void Prender() { System.Console.WriteLine(" LA TV SE ESTA PRENDIENDO "); } } ERROR!!!...El mtodo ya class TVColor : TV no se puede sobreescribir. { public override void Prender() { System.Console.WriteLine(" La tele a color se esta prendiendo"); } 22 }
11
class Vehiculo { public void Arrancar() { System.Console.WriteLine(" Clase Vehiculo. Metodo Arrancar "); } } class Automovil : Vehiculo { public new void Arrancar() { System.Console.WriteLine(" Clase Automovil. Metodo Arrancar "); } }
23
+eferencias
http://www.devjoker.com/contenidos/TutorialC/135/Polimorfismo.aspx http://www.nebrija.es/~abustind/Informatica/Met odologiaII/Polimorfismo.pdf http://apdazapoo.blogspot.mx/2008/04/polimorfismo.html http://www.clikear.com/manuales/csharp/c38.as px http://www.elguille.info/colabora/NET2005/jbarri entos_polimorfismoCS.htm 24
12