Buscando una explicación detallada de las interfaces y el polimorfismo en Java
El polimorfismo es uno de los núcleos de la programación orientada a objetos, y la programación orientada a interfaces también toma como núcleo la programación orientada a objetos.
La interfaz es una especie de estándar. Deberíamos integrar la programación en nuestra vida diaria. Por ejemplo, la placa base de una computadora tiene muchas interfaces, siempre que la CPU esté conectada a la interfaz, puede funcionar. No importa de qué fabricante sea la CPU, no importa cómo funcione internamente, siempre que sea una CPU, se puede utilizar. Por ejemplo, si escribe una interfaz y hay un método fly en ella, todas las clases que implementan esta interfaz deben implementar este método. En cuanto a cómo vuela, es su problema si vuela con alas o con una escoba, siempre. a medida que implementas 'fly' Can.
Lo anterior trata sobre integrar la programación en tu vida y hablar sobre programación.
El polimorfismo ocurre cuando una referencia de una clase principal o interfaz apunta a un objeto de una subclase. Por ejemplo, si la clase secundaria extiende la clase Fahter
Father f=new Child(); si un fragmento de código se puede ejecutar con la clase principal y la función permanece sin cambios cuando se reemplaza con una subclase, entonces es polimórfico. Hay dos cosas principales que debes recordar sobre el polimorfismo: mirar las referencias al compilar y mirar los objetos en tiempo de ejecución. Lo que esta oración significa es que durante la fase de compilación del IDE, los métodos en los que hizo clic con f (f. Aquí se mostrarán los métodos de instancia de la clase padre) son la clase Fahter en sí y los métodos de la clase secundaria no se utilizarán. Se le solicitará automáticamente. Pero si la subclase anula el método de la clase principal (reescritura: la subclase define un método que es exactamente el mismo que la clase principal, pero el cuerpo del método es diferente), el tiempo de ejecución también dependerá de quién presenta algo nuevo. Child(); Luego ejecute el cuerpo del método reescrito por la clase Child. La ventaja de esto es que puedo escribir f.fly() en un método (por ejemplo, tanto Father como Child tienen métodos fly)
<; p>public void test(Padre f){f.fly();
} En este código, no necesito cambiar el código interno, pero el efecto de f.fly() puede ser diferente, porque los objetos de subclase que paso pueden ser diferentes, como test(new Child1()); test(new Child2() test(new Child3()); En estas tres subclases tienen sus propias implementaciones específicas. Esta es la manifestación del polimorfismo, donde la misma referencia llama al mismo método y muestra múltiples estados. Lo mismo ocurre si la interfaz se reemplaza por la clase principal. Si aún no entiendes algo, pregunta. Jaja