¿Cuáles son las características del polimorfismo en JAVA? ¿Dónde es adecuado utilizar el polimorfismo?
El polimorfismo permite que objetos de diferentes subtipos respondan de manera diferente al mismo mensaje. En pocas palabras, se llama al mismo método con la misma referencia de objeto pero se hacen cosas diferentes. El polimorfismo se divide en polimorfismo en tiempo de compilación y polimorfismo en tiempo de ejecución.
Si los métodos de un objeto se consideran los servicios proporcionados por el objeto al mundo exterior, entonces el polimorfismo en tiempo de ejecución se puede explicar como: cuando el sistema A accede a los servicios proporcionados por el sistema B, el sistema B tiene múltiples servicios proporcionados, pero todo es transparente para el sistema A (al igual que una afeitadora eléctrica es el sistema A, y su sistema de suministro de energía es el sistema B. El sistema B puede funcionar con baterías o CA, o incluso con energía solar, el sistema A solo llamará el método de suministro de energía a través de objetos de clase B, pero no sabe cuál es la implementación subyacente del sistema de suministro de energía y cómo obtiene energía).
La sobrecarga de métodos (sobrecarga) implementa el polimorfismo en tiempo de compilación (también conocido como enlace frontal), mientras que la anulación de métodos (anulación) implementa el polimorfismo en tiempo de ejecución (también conocido como enlace posterior).