Ya se vio en el ejemplo presentado en el Apartado 1.3.8 y en los comentarios incluidos en qué
consistía el polimorfismo.
El polimorfismo tiene que ver con la relación que se establece entre la llamada a un método y
el código que efectivamente se asocia con dicha llamada.
A esta relación se llama vinculación
(binding). La vinculación puede ser temprana (en tiempo de compilación) o tardía (en tiempo de
ejecución). Con funciones normales o sobrecargadas se utiliza vinculación temprana (es posible y es
lo más eficiente). Con funciones redefinidas en Java se utiliza siempre vinculación tardía. excepto
si el método es final. El polimorfismo es la opción por defecto en Java.
La vinculación tardía hace posible que. con un método declarado en una clase base (o en una
interface) y redefinido en las clases derivadas (o en clases que implementan esa interface), sea el
tipo de objeto y no el tipo de la referencia lo que determine qué definición del método se va a
utilizar.
El tipo del objeto al que apunta una referencia sólo puede conocerse en tiempo de
ejecución, y por eso el polimorfismo necesita evaluación tardía.
El polimorfismo permite a los programadores separar las cosas que cambian de las que no
cambian, y de esta manera hacer más fácil la ampliación, el mantenimiento y la reutilización de los
programas.
El polimorfismo puede hacerse con referencias de super-clases abstraer, super-clases
normales e interfaces. Por su mayor flexibilidad y por su independencia de la jerarquía de clases
estándar, las interfaces permiten ampliar muchísimo las posibilidades del polimorfismo.
No hay comentarios:
Publicar un comentario