29 noviembre 2011

Ejemplo de Polimorfismo BÁSICO en java

Polimorfismo. Imagen elguille.info

Como estudiante de Ing. en Sistemas me encargaron investigar lo que es polimorfismo en java, en Internet encontre muchos ejemplos, todos ellos avanzados y para mi, difíciles de entender, claro por que era la primera vez que veía lo que es polimorfismo, incluso algunos compañeros ya programadores desconocían el termino por haber aprendido a programar en la practica y no en teoría.

Al final comprendí lo que es polimorfismo y su aplicación, como el día del examen no pude asistir por causas personales me encargaron un resumen de polimorfismo para pasar el examen, esto es lo que entregare y ademas les servirá para comprender lo que es polimorfismo básico, a partir de este pequeño pero claro razonamiento pueden ver y entender ejemplos mas complejos que hay en Internet.
El polimorfismo es muy parecido o más bien tiene sus bases en la capacidad de herencia que presentan los lenguajes orientados a objetos como es el caso de java.
Como sabemos con la  herencia las clases padres comparten métodos con las clases hijas, bueno con el polimorfismo se hace prácticamente lo mismo pero en vez de clases padres se tiene clases abstractas.
Las clases abstractas tienen métodos abstractos es decir métodos que solo están declarados sus nombres pero su forma de “actuar” difiere de una clase hija a otra. Los métodos actúan dependiendo de la clase que haga mención del método declarado en la clase abstracta.

Veamos la diferencia de una clase con herencia y de una clase abstracta con polimorfismo:
Herencia:
Clase padre
Métodos: Escribir (escribe un texto en un archivo), leer (lee un archivo escrito)
Clase hija: Métodos: ordenar (ordena una serie de caracteres en un texto), Escribir (escribe un texto en un archivo)
Clase hija: Métodos: desordenar (desordena una serie de caracteres en un texto), Escribir (escribe un texto en un archivo)
Como podrán ver en esta representación gráfica se puede apreciar que una clase padre comparte métodos completamente iguales a sus subclases, las clases hijas, las clases hijas tienen sus propios métodos pero también pueden o no hacer uso de los métodos de la clase padre.
Polimorfismo:
Clase abstracta
Métodos: Escribir, leer
Subclase 1: Método: Escribir (Escribir números en un archivo), ordenar (ordena una serie de caracteres en un texto).
Subclase 2: Método: Escribir (Escribe todas las pulsaciones del teclado), desordenar (desordena una serie de caracteres en un texto).
Como podemos ver en este ejemplo solo se declaran los nombres de los métodos y en las subclases se declaran las funciones de los métodos, en este caso el método escribir hace cosas diferentes en cada una de las subclases pero sigue usando el método escribir de la clase abstracta.
Para terminar un ejemplo de polimorfismo en java es el siguiente:
/**
 *
 * @author Daniel – CLASE ABSTRACTA
 */
abstract class Figura {
//se declaran metodos sin comportamiento
abstract void area();
abstract void perimetro();
}

/**
*
 * @author Daniel – SUBCLASE 1
 */
class Cuadrado extends Figura {
void area() {
System.out.println("Aqui se calcula el area de un cuadrado");
}
void perimetro() {
System.out.println("aqui se calcula el perimetro de un cuadrado");
}
}


/**
 *
 * @author Daniel – SUBLCASE 2
 */
class Circulo extends Figura {
void area() {
System.out.println("aqui se puede calcular el area de un circulo");
}
void perimetro() {
System.out.println("Aqui se calcula el perimetro de un circulo");
}
}



/**
 *
 * @author Daniel –MAIN 
 */
Public class Polimorfismo {
 public static void main(String[] args) {  
Figura figura1 = new Circulo();
figura1.area();
figura1.perimetro();
figura1 = new Cuadrado();
figura1.area();
figura1.perimetro();
    }
}


  • Cada uno de los bloques va en una clase
  • Cada bloque empieza con el comentario del nombre del autor
  • El código lo pueden copiar y probar, esta funcionando.
Recomienda el blog !

17 comentarios:

  1. excelente explikacion mis respetos

    ResponderBorrar
  2. Super una de las explicaciones mas entendibles que he leído

    ResponderBorrar
  3. y que diferencia tendria con la herencia?

    ResponderBorrar
    Respuestas
    1. Hay que leerlo de nuevo mi estimado, explico completamente la diferencia con la herencia.

      Borrar
  4. en verdad ayudas...

    ResponderBorrar
  5. graxias hermano me ayudastes a despejar la duda

    ResponderBorrar
  6. Esas formas sencillas de entender y explicar requiere el mundo :D

    ResponderBorrar
  7. si asi nos explicaran a nosotros en la u

    ResponderBorrar
  8. Muchas gracias. Mañana tengo examen de esto mismo y me sirvió de mucho.

    ResponderBorrar
  9. Gracias!!!! La verdad para empezar si toca casi que con plastilina. Pero aclaró mucho el concepto. Mil gracias.

    ResponderBorrar
  10. muy buena explicacion.... me gusto el codigo muy sencillo para poder comprender

    ResponderBorrar
  11. Muy bueno. Gracias

    ResponderBorrar
  12. Gracias, ya entendí

    ResponderBorrar
  13. aaaaaa aun no entiendo muy bien, pero me sirvió de mucho saber la diferencia :)

    ResponderBorrar
  14. entendi.... muy bien gracias x ponerlo

    ResponderBorrar
  15. Hermano!...Vienes del futuro!

    ResponderBorrar
  16. Muchas gracias. Claro y conciso. +++

    ResponderBorrar

Deja tu comentario, te gusto, no funciono me la quieres rayar? me quieres besar?
Dilo!