¿Qué es el Polimorfismo en Java?

El polimorfismo en Java ocurre cuando hay una o más clases u objetos relacionados entre sí por herencia. En otras palabras, es la capacidad de un objeto de tomar muchas formas. La herencia permite a los usuarios heredar atributos y métodos, y polymorphism utiliza estos métodos para realizar diferentes tareas. Así, el objetivo es la comunicación, pero el enfoque es diferente.

por ejemplo, tiene un teléfono inteligente para la comunicación., El modo de comunicación que elija podría ser cualquier cosa. Puede ser una llamada, un mensaje de texto,un mensaje de Imagen, Correo, etc. Así, el objetivo es común que es la comunicación, pero su enfoque es diferente. Esto se llama polimorfismo.

en este tutorial, aprenderás-

  • ¿Qué es el polimorfismo?
  • Java Polymorphism in OOP’s with Example
  • method Overriding
  • diferencia entre overriding y overriding
  • ¿Qué es el polimorfismo Dinámico?,
  • Super Keyword
  • diferencia entre Static & polimorfismo Dinámico

Haga clic aquí si el video no es accesible

polimorfismo Java en OOP’s con ejemplo

tenemos una clase padre, ‘cuenta’ con función de depósito y retiro. Cuenta tiene 2 clases de niños
La operación de depósito y retiro es la misma para cuentas de ahorro y cheques. Así que los métodos heredados de la clase Account funcionarán.,

el Cambio en los requisitos del Software

Hay un cambio en la especificación de requisitos, algo que es tan común en la industria del software. Se supone que debe agregar funcionalidad de cuenta bancaria privilegiada con Servicio de sobregiro.

para un fondo, el sobregiro es un servicio en el que puede retirar una cantidad superior al saldo disponible en su cuenta.

por lo tanto, retirar el método para las necesidades privilegiadas a implementarse de nuevo., Pero usted no cambia la pieza de código probada en la cuenta de Ahorros y cheques. Esta es la ventaja de OOPS

Paso 1) tal que cuando el método» retirado » para guardar la cuenta se llama a un método de la clase de cuenta principal se ejecuta.

Paso 2) pero cuando el método» Withdraw » para la cuenta privilegiada (descubierto) se llama método withdraw definido en la clase privilegiada se ejecuta. Esto es polimorfismo.,

Método Primordial

el Método Primordial es la redefinición de un super clase de método en una clase sub.

reglas para reemplazar el método

  • La firma del método, es decir, el nombre del método, la lista de parámetros y el tipo de retorno deben coincidir exactamente.
  • El método puede ampliar la accesibilidad, pero no estrecha, es decir, si es privado de la clase base, la clase hija puede hacerlo público, pero no viceversa.,

Ejemplo

la Diferencia entre la Sobrecarga y Primordial

¿Qué es la Dinámica de Polimorfismo?

El polimorfismo dinámico es el mecanismo por el cual se pueden definir múltiples métodos con el mismo nombre y firma en la superclase y subclase. La llamada a un método sobrescrito se resuelve en tiempo de ejecución.,

ejemplo de polimorfismo Dinámico:

una variable de referencia de la superclase puede referirse a un objeto de subclase

 Doctor obj = new Surgeon();

considere la instrucción

obj.treatPatient();

Aquí la variable de referencia» obj » es de la clase padre, pero el objeto al que apunta es de la clase hija (como se muestra en el diagrama).

obj.,n

Si se utiliza una referencia de clase base para llamar a un método, el método a invocar es decidido por la JVM, dependiendo del objeto al que la referencia apunta

por ejemplo, aunque obj es una referencia a Doctor, llama al método de cirujano, ya que apunta a un objeto de cirujano

esto se decide durante el tiempo de ejecución y por lo tanto se denomina polimorfismo dinámico o en tiempo de ejecución

Super palabra clave

¿Qué pasa si el método treatpatient en la clase de cirujano quiere ejecutar la funcionalidad definida en la clase de médico y luego realizar su propia funcionalidad específica?,
en este caso, keyword super se puede usar para acceder a los métodos de la clase padre desde la clase hija.
el método treatPatient en la clase Surgeon podría escribirse como:

treatPatient(){ super.treatPatient(); //add code specific to Surgeon}

la palabra clave super se puede usar para acceder a cualquier miembro de datos o métodos de la clase super en la clase sub.,br>Example:-To learn Inheritance, Polymorphism & super keyword

Step 1) Copy the following code into an Editor

Difference between Static & Dynamic Polymorphism

Static Polymorphism
Dynamic Polymorphism
It relates to method overloading., se refiere a la sobreescritura de métodos.

Los errores, si los hay, se resuelven en tiempo de compilación. Dado que el código no se ejecuta durante la compilación, de ahí el nombre static.

Ex:

void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. 

en caso de que una variable de referencia llame a un método sobreescrito, el método a invocar está determinado por el objeto, al que apunta la variable de referencia. Esto solo se puede determinar en tiempo de ejecución cuando el código está en ejecución, de ahí el nombre dinámico.,

Ex:

//reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient();