Polimorfismo en Java: cómo sobrecargar o anular métodos

Polimorfismo en Java: cómo sobrecargar o anular métodos

La sobrecarga y la anulación de métodos son las dos formas en que Java demuestra polimorfismo. El polimorfismo proviene de una combinación de dos palabras griegas: 'poly' que significa muchos y 'morph' que significa forma. Por lo tanto, el polimorfismo permite que los métodos adopten muchas formas.



Siga esta guía para aprender a sobrecargar o anular métodos en Java.

¿Qué es la sobrecarga de métodos?

'Sobrecarga de métodos' se refiere a definir diferentes métodos en una clase con el mismo nombre. Los métodos deben tener diferentes firmas. La firma de un método es la combinación del nombre de un método y la lista de parámetros. No incluye el tipo de devolución.





El compilador sabe qué método utilizar comprobando el tipo, el número de parámetros y el orden en que se colocan.

Relacionado: Explorando la herencia en el lenguaje de programación Java



La sobrecarga de métodos demuestra polimorfismo en tiempo de compilación. El polimorfismo en tiempo de compilación significa que el compilador de Java vincula un objeto a su funcionalidad en tiempo de ejecución. El compilador comprueba las firmas de métodos para lograr esto.

Este tipo de polimorfismo también se conoce como unión estática o temprana.

Vea el ejemplo de sobrecarga de métodos a continuación:

|_+_|

Producción:

|_+_|

El código anterior muestra cómo puede obtener un cubo de diferentes tipos ( En t , doble , flotador ) utilizando el mismo método.

Generalmente, la sobrecarga de métodos se usa para definir métodos similares con diferentes tipos de parámetros.

¿Qué es el método anulado?

Esto se refiere a una implementación diferente de un método en una subclase. El método ya debe estar definido en la clase padre.

El método primordial (es decir, el de la subclase) debe tener la misma firma de método que el de la superclase. El tipo de retorno del método de reemplazo puede ser el mismo o un subtipo del de la superclase.

La anulación se usa generalmente para incluir una implementación específica del comportamiento de un objeto en la subclase.

|_+_|

Producción:

|_+_|

El ejemplo anterior muestra cómo el método mensaje() se anula en las subclases Ahorros y Deposito reparado . Se mostrarán diferentes mensajes para los titulares de cuentas bancarias con una cuenta de ahorros y aquellos con una cuenta de depósito fijo.

Relacionado: Lo que necesita saber sobre el uso de cadenas en Java

También vale la pena señalar que la invalidación de métodos demuestra polimorfismo en tiempo de ejecución o distribución dinámica de métodos. Esto significa que el método que se va a llamar se resuelve en tiempo de ejecución en lugar de durante la compilación.

Para evitar que se anule un método, utilice la palabra clave final .

|_+_|

Cuando una subclase intenta anularla, se producirá un error de compilación.

Idealmente, todos los métodos llamados dentro de un constructor deberían ser final . Esto es para evitar cambios no deseados que puedan ser causados ​​por las subclases.

A veces, es posible que deba acceder a un método anulado dentro del método anulado. Puedes usar la palabra clave súper seguido del operador de punto ( . ) y el nombre del método en tal caso.

Considere la superclase Animal .

|_+_|

A continuación se muestra una subclase, llamada Pez , que anula moverse() :

|_+_|

Producción:

cómo arreglar el uso del disco al 100%
|_+_|

Al anular un método, también debe tener en cuenta el modificador de acceso utilizado. El modificador en la subclase debe tener el mismo nivel de visibilidad o más alto que en la clase base. Por ejemplo, si el método en la clase base se define como protegido , entonces el método primordial puede ser protegido o público .

Código simple con polimorfismo

La anulación y la sobrecarga de métodos son importantes para la simplificación del código, y el código simple es una buena práctica.

¿Por qué? Imagine una base de código compleja con más entresijos que la Grand Central Station. Ahora imagina que un error devastador comienza a destruir tu arduo trabajo ante tus propios ojos. Debe aislar la fuente de la infección y debe hacerlo rápidamente.

Buena suerte, no simplificó su código ... Ahora está a punto de recibir una verdadera lección de criptografía. Emplear estructuras de datos efectivas y hacer lo que pueda para acortar el código (como tener en cuenta DRY) es su mejor defensa contra una situación como esta.

El siguiente paso en su lista de aprendizaje de Java debería ser trabajar con matrices. Son estructuras de datos importantes que se utilizan para almacenar lotes de puntos de datos.

Cuota Cuota Pío Correo electrónico Cómo crear y realizar operaciones en matrices en Java

¿Aprendiendo Java? Deje que las matrices manejen sus datos con facilidad.

Leer siguiente
Temas relacionados
  • Programación
  • Java
  • Tutoriales de codificación
Sobre el Autor Jerome Davidson(22 Artículos publicados)

Jerome es redactor de MakeUseOf. Cubre artículos sobre programación y Linux. También es un entusiasta de la criptografía y siempre está al tanto de la industria de la criptografía.

Más de Jerome Davidson

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse