martes, 5 de octubre de 2010

Herencia y polimorfismo: modularidad y reutilización de código


Herencia
Herencia en la programación orientada a objetos es la habilidad de extender una funcionalidad existente definiendo una nueva clase que hereda funcionalidad de una clase existente. Lo cual nos ahorrara mucho tiempo a los programadores.
Si contamos con una clase que se acerca a lo que necesitamos; no es necesario crear una clase desde cero. Podemos aprovecharla y extenderla para crear nuestra nueva clase. Esta nueva clase se llamara subclase y la clase que ya teníamos se llamara superclase.
La subclase heredara todos los atributos y los métodos que fueron definidos en la clase padre. Si necesitamos cambiar algún método, se puede sobrescribir el comportamiento en nuestra subclase; utilizando el mismo nombre y los mismos argumentos del método que se encuentra en la subclase. O bien si se requiere crear un nuevo método lo podemos incluir en nuestra subclase.
Una clase puede heredar atributos por dos superclases (clases padres). La herencia múltiple puede ser usada para agrupar atributos y métodos de distintas clases en una sola.

Ejemplo:


 

Fuente
-        http://en.kioskea.net/contents/poo/heritage.php3
 Seleccione esta fuente porque de las que encontré es donde te dan una explicación más específica y todo lo aterrizan a ejemplos lo cual me hizo mas fácil comprender el concepto. 
-       http://www.math.bas.bg/~nkirov/2005/oop/deitel/cpphtp4_09.pdf
 El ejemplo lo saque de esta fuente. vienen muchos ejemplos de herencia.

Aplicado al tema "Sistema de mensajería instantánea tipo MSN".
Aplicaciones de herencia:
• Superclase: Contacto
Subclases: Admisión
                   Sin Admisión


• Superclase: Status
Subclase:      Conectado
                   Desconectado
                   Ausente
                   No disponible
                   etc.  


Polimorfismo
Significa literalmente muchas formas. En programación orientada a objetos es una tecnica para optimizar la funcionalidad basada en tipos particulares.
La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases y polimorfismo con métodos.

Existen 3 tipos de polimorfismo:
- Sobrecarga:
 Es cuando existen funciones con el mismo nombre, con funcionalidad similar; en clases que son completamente independientes una de la otra.
- Paramétrico:
Existen funciones con el mismo nombre pero se usan diferentes parámetros (nombre o tipo). Se selecciona el método dependiendo del tipo de datos que se mande.
-Inclusión:
 Es cuando se puede llamar a un método sin tener que conocer su tipo, así no se toma en cuenta los detalles de las clases especializadas, utilizando una interfaz común.

Ejemplo:

Fuente:  -http://en.kioskea.net/contents/poo/polymorp.php3#overloading
 Me base en esta fuete porque es donde te lo explicaban de una manera mas basica y  explicita.
 -http://www.youtube.com/watch?v=nxwD7hGmIDQ&feature=related
  Este video me ayudo mas a entender el concepto.

 Aplicado al tema "Sistema de mensajería instantánea tipo MSN".
Aplicaciones de polimorfismo

• En el método Modificación de usuario pueden variar los parámetros.
Por ejemplo:
 -ModificacionUsuario(idusuario,username)
 -ModificacionUsuario(idusuario,username,Imagenparamostrar)
 - ModificacionUsuario(idusuario,contraseña)

• En el método Modificación del contacto.
Por ejemplo:
 -ModificacionContacto(IdUsuario,IdContacto,GrupoId)
 -ModificacionContacto(IdUsuario,IdContacto, Admisión)

18 comentarios:

  1. Bien. Se nota que le estás dedicando tiempo y aprendiendo. Si llegas a tener alguna duda, puedes enviarlo a la lista de correos o ponerlo aquí como comentario en tu blog.

    ResponderEliminar
  2. Hola,

    Mira, estos son los videos que yo encontré y me parecieron muy explícitos en las definiciones de Herencia y Polimorfismo. Haber que te parecen.

    http://www.youtube.com/watch?v=0I6HbYWFTAA

    http://www.youtube.com/watch?v=5aQeJ79EJCc&feature=player_embedded#!

    Saludos!!

    ResponderEliminar
  3. todos lo ejemplos estan en ingles se entiende mas la herencia de lic sanchez los demas no lo entiendo

    ResponderEliminar
  4. chingas a toda tu puta madre hija de la verga, mejor dedícate a la prostitución pinche morra meca traga vergas y de paso lávate la pinche pepa que ya te huele a pinche pescado caducado
    salu2. gracias, si me sirvio

    ResponderEliminar

  5. excelente trabajo, aunque me hubiese gustado ver y escuchar unos videos en español

    ResponderEliminar
  6. Gracias!!
    Me sirvió un montón para entender los conceptos!!

    ResponderEliminar
  7. Los videos todos están en inglés, ni hay en español

    ResponderEliminar

  8. ¿Cómo aplicaría la teoría de herencia y polimorfismo en el diseño de aplicaciones?

    ResponderEliminar