Pensando en polimorfismo en Java3
Las personas a menudo se confunden por otras características de Java, no orientadas a los objetivos, como la sobrecarga de métodos, que a veces se presentan como orientadas a objetos. No se deje engañar: si no es atar tarde, no es polimorfismo
Traducción por texto
Las personas siempre están confundidas por otra característica no orientada a Objetos de Java, como la sobrecarga de métodos. A veces existe como orientado a objetos. Por favor, no seas estúpido. Si no hay unión tardía (es decir, unión dinámica durante el tiempo de ejecución), no es polimórfico.
Por lo tanto, lo que este pasaje quiere expresar es que los polimorfismos deben tener unión dinámica, de lo contrario no es polimorfismo, y la sobrecarga de métodos no es polimorfismo (porque la sobrecarga de métodos se determina durante el período de compilación, y no hay unión dinámica en el período posterior, es decir, el período de tiempo de ejecución)
Cuando se cumplen estas tres condiciones 1. Hay herencia 2. Se anulan 3. Debe haber una referencia de clase principal que apunte a un objeto de clase infantil
<span style = "font-size: 14px;"> Ejemplo: dirección de clase pública {private string name; public dirication (String name) {this.name = name;} public String getName () {return name;} public void setName (name de cadena) {this.name = name;}} Define la clase base (clase de base abstracta): Class de clase pública Vehicle de clase pública {Vehículo de la clase pública Void Go (dirección de dirección);} extiende el vehículo {@OverridePublic Void Go (dirección de dirección) {System.out.println ("Car to" + dirección.getName ());}} plano implementa el plano de la clase base: el plano de clase pública extiende {@OverridEvoid Go (dirección de dirección) {system.out.println ("plano a" + dirección. v) {/// polimorfismo, la clase de referencia principal apunta al objeto de subclase, y la transmisión real es una subclase del vehículo de clase abstracta o la clase de implementación, y el compilador encontrará el método de implementación basado en la clase de implementación específica. v.go (nueva dirección ("Hangzhou (abstract)")); /// Este método se reescribe en la implementación específica} prueba: public static void main (string [] args) {controlador d = new Driver (); d.drive (nuevo plano ()); // en realidad es un objeto plano, entonces el compilador encontrará la implementación de Go en plano, d.drive (nuevo automóvil ()); // En realidad es un objeto de automóvil, entonces el compilador encontrará la implementación de GO en el plano} Resultado de salida: plano a hangzhou (abstracto) auto a hangzhou (resumen) </span>Polimorfismo: se refiere a los diferentes estados de lo mismo, como: agua. El agua puede tener tres estados:
Gas, líquidos y sólidos. Entonces el polimorfismo en Java también puede entenderse como este significado:
La técnica para establecer el objeto principal para que sea igual a uno o más de sus objetos infantiles,
Por ejemplo, el padre = niño;
El polimorfismo permite la referencia de objetos de diferentes clases utilizando la misma clase (clase principal),
Y realizar la misma operación de diferentes maneras dependiendo del objeto referenciado.
La implementación polimórfica incluye dos maneras: sobrecarga y sobrescritura
Por ejemplo: Animal A = New Tiger (); Este es un tema antiguo, jaja ...
La clase de referencia principal apunta al objeto de clase infantil. La clase animal contiene un método Eat (), y la clase de tigre hereda de
Clase de animales, si la subclase reescribe el método Eat () de la clase principal, luego, cuando se le llama, puede seguir la clase de niños.
El llamado formal de, es esencialmente el método de clase principal, pero después de reescribir la subclase, se convierte en otra forma, que es el polimorfismo.
Lo anterior es la breve discusión de qué aspectos de la implementación del polimorfismo de Java reflejan principalmente. Espero que sea útil para todos y apoye a Wulin.com más ~