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: "poli" 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.

Relacionados: 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.

instagram viewer

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:

clase Aritmética {
int cube (int x) {
return x * x * x;
}
cubo doble (doble x) {
return x * x * x;
}
cubo flotante (flotante x) {
return x * x * x;
}
public static void main (String [] args) {
Aritmética myMultiplication = new Aritmética ();
System.out.println ("El cubo de 5 es" + myMultiplication.cube (5));
System.out.println ("El cubo de 5.0 es" + myMultiplication.cube (5.0));
System.out.println ("El cubo de 0.5 es" + myMultiplication.cube (0.5));
}
}

Producción:

El cubo de 5 es 125
El cubo de 5.0 es 125.0
El cubo de 0.5 es 0.125

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.

class Account {
mensaje vacío público () {
System.out.println ("
¡Gracias por abrir una cuenta con nosotros! ");
}
public static void main (String args []) {
Cuenta myAccount = nueva cuenta ();
Ahorros mySavings = nuevos ahorros ();
FixedDeposit myFixedDepo = new FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
class Savings extiende la cuenta {
mensaje vacío público () {
System.out.println ("
¡Gracias por abrir una cuenta de ahorros con nosotros! ");
}
}
class FixedDeposit extiende la cuenta {
mensaje vacío público () {
System.out.println ("
¡Gracias por abrir una cuenta de depósito fijo con nosotros! ");
}
}

Producción:

¡Gracias por abrir una cuenta con nosotros!
¡Gracias por abrir una cuenta de ahorros con nosotros!
¡Gracias por abrir una cuenta de depósito fijo con nosotros!

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.

Relacionados: 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.

mensaje nulo final () {
System.out.println ("
¡Gracias por abrir una cuenta con nosotros! ");
}

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.

class Animal {
movimiento de vacío público () {
System.out.println ("
Puedo moverme. ");
}
}

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

class Fish extiende Animal {
movimiento de vacío público () {
System.out.println ("
Puedo nadar.");
super.move ();
}
public static void main (String args []) {
Pescado Tilapia = nuevo Pescado ();
Tilapia.move ();
}
}

Producción:

Puedo nadar.
Me puedo mover.

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 simplificaste tu 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.

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 (15 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!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.