Colección de citas famosas - Frases elegantes - ¿Por qué siento que el polimorfismo es inútil en Java? Déjame darte un ejemplo.

¿Por qué siento que el polimorfismo es inútil en Java? Déjame darte un ejemplo.

Los beneficios que nos aporta el polimorfismo se pueden resumir en los siguientes cinco puntos:

1. El polimorfismo permite la sustitución del código existente. Por ejemplo, el polimorfismo funciona para la clase Círculo, pero también funciona para cualquier otra geometría circular, como un toroide. Como se muestra en la Figura 8.1.

() Figura 8.1 Reemplazo

2. El polimorfismo hace que el código sea extensible. Agregar nuevas subclases no afecta el polimorfismo, la herencia ni el funcionamiento de otras características de las clases existentes. De hecho, es más fácil agregar nuevas subclases para obtener funciones polimórficas. Por ejemplo, después de comprender el polimorfismo de conos, semiconos y hemisferios, es fácil agregar el polimorfismo de clase esfera. Como se muestra en la Figura 8.2.

() Figura 8.2 Escalabilidad

3. El polimorfismo se logra cuando la superclase proporciona una interfaz única a la subclase a través de firmas de métodos, y la subclase la completa o la anula. Como se muestra en la Figura 8.3. La superclase Shape en la figura especifica dos métodos de interfaz que implementan polimorfismo, ComputeArea() y ComputeVolume(). Las subclases, como Circle y Sphere, mejoran o anulan estos dos métodos de interfaz para lograr polimorfismo.

Figura 8.3 Interfaz polimórfica

4. Incorpora operaciones flexibles y diversas en aplicaciones y mejora la eficiencia de uso.

5. Simplicidad. El polimorfismo simplifica el proceso de escritura y modificación de código del software de aplicación. Esta característica es particularmente destacada e importante cuando se trata de cálculos y operaciones en una gran cantidad de objetos.

Vale la pena señalar que el polimorfismo no puede resolver el problema de aumentar la velocidad de ejecución porque se basa en la carga dinámica y la referencia de direcciones, o enlace dinámico. Pero en Java, excepto las clases finales y los métodos finales bajo ciertas condiciones, todos los métodos están vinculados dinámicamente por la JVM durante el tiempo de ejecución.