Polimorfismo: múltiples formas de objetos.
Hay tres condiciones necesarias para que Java implemente el polimorfismo:
- Herencia: en el polimorfismo, debe haber subclases y clases para padres con relación de herencia.
- Reescribir: la subclase redefine ciertos métodos en la clase padre. Al llamar a estos métodos, se llaman los métodos de la subclase.
- Transformación ascendente: en el polimorfismo, debe asignar la referencia de subclase al objeto de la clase principal. Solo de esta manera la referencia puede llamar tanto al método de la clase principal como al método de la subclase.
Solo cuando se cumplen estas tres condiciones, se puede usar la lógica unificada en la misma estructura de herencia para implementar código para procesar diferentes objetos y, por lo tanto, realizar diferentes comportamientos.
1. Polimorfismo de referencia
La referencia de la clase padre puede apuntar al objeto de esta clase.
La referencia de clase principal puede apuntar a un objeto de subclase
2. Método de polimorfismo
Al crear un objeto de este tipo, el método llamado es un método de este tipo
Al crear un objeto de subclase, el método llamado es un método anulado o heredado por la subclase
Resultado de la operación:
Conversión de tipo de referencia en polimorfismo
1. La conversión de tipo ascendente (conversión de tipo implícita / automática) es la conversión de tipos pequeños a tipos grandes
2. La conversión de tipo descendente (conversión de tipo obligatoria) es la conversión de tipo grande a tipo pequeño (riesgo de desbordamiento de datos)
3.instanceof operador , para resolver el tipo del objeto referenciado, a los problemas de seguridad evitan moldes
Resultado de la operación: