domingo, 18 de septiembre de 2016

Polimorfismo


El polimorfismo en java se refiere al momento en que un método puede realizar distintos procesos en función de un objeto de una clase en concreto, donde esta clase adquiere este método ya sea por la relación de herencia con otra clase o por la relación de realización con una interface, esta ultima tiene como objetivo contener métodos abstractos para que una clase los desarrolle. 

Es por eso que el polimorfismo se ve normalmente en la especialización de una clase, donde sus subclases heredan sus métodos, ya sean abstractos o desarrollados como tal para que los pueda realizar, lo mismo sucede con la interface.


Un ejemplo en diagrama UML es:














En este pequeño diagrama se encuentran dos clases donde la clase circunferencia se conecta o mejor dicho relaciona, con la clase figura geométrica la cual tiene unos atributos y métodos lo cuales con la relación de tipo herencia o generalización (la flecha) serán heredados a la subclase circunferencia, donde podrá realizarlos teniendo en cuenta sus atributos ya propuestos y los tipos de métodos que son.

Vemos este ejemplo en java.






































En  este caso los métodos heredados a excepción de los GET creados en la clase figura geométrica, son abstractos por lo que al momento de realizar el código de las clases en circunferencia, está deberá desarrollar esos métodos abstractos mediante de ciertas operaciones para calcular el área y perímetro. Y para que esta pueda tomar estos métodos y desarrollarlos a voluntad por su herencia, se debe colocar la palabra "extends" y seguido el nombre de la clase de donde obtendrá los métodos, esto es seguido del "public class NombreClase" como se puede ver en la segunda imagen de código.

Nota: para reconocer un método abstracto en un diagrama de clases, se debe ver como esta escrito si en letra cursiva o scrib, si esta en letra cursiva es un método abstracto. En este caso los métodos de área y perímetro no están escritos en cursiva porque el programa para realizar el diagrama UML no lo permitía, pero aun así hay que tener en cuenta eso.

No hay comentarios.:

Publicar un comentario