¿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
|
|
---|---|
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(); |