Polimorfismo en java
Polimorfismo es un término informático de fantasía que se refiere a la capacidad de Java para utilizar variables de la clase base para referirse a objetos de las subclases, realizar un seguimiento de qué subclase pertenece un objeto, y utilizar métodos sobrescritos de la subclase a pesar de que la subclase no se conoce cuando el programa se compila.
Video: Polimorfismo en Java
¡Uf! Eso es un bocado. Lo que se reduce a es que cada vez que un parámetro requiere un tipo particular, se puede usar un objeto creado a partir de una subclase de ese tipo en su lugar.
Por ejemplo, supongamos que usted está desarrollando una aplicación que puede jugar el juego venerable Tic-Tac-Toe, y se crea una clase llamada Jugador que representa uno de los jugadores. Esta clase tiene un público método denominado movimiento que devuelve una int para indicar qué cuadro del tablero el jugador quiere marcar.
Para simplificar las cosas, la movimiento método escoge ciegamente la primera casilla vacía en la junta como su movimiento. Esto es, por supuesto, una estrategia terrible para ganar en Tic-Tac-Toe. Por lo tanto, se decide crear una versión mejor de la clase, llamada BetterPlayer. Implementar el BetterPlayer clase como una subclase de la Jugador clase, sino anular el movimiento método de manera que la BetterPlayer clase hace movimientos más inteligentes que los Jugador clase.
Supongamos que también ha escrito un método llamado Hacer un movimiento en la clase principal de la aplicación de Tic-Tac-Toe (llamado TicTacToe). los Hacer un movimiento método es como la siguiente:
Video: Curso Java. Polimorfismo y enlazado dinámico. Vídeo 43
MakeAMove pública vacío (Jugador p) {int i = p.move () - Devuelve i-}
Se podría llamar la Hacer un movimiento método como este:
int m = MakeAMove (nuevo jugador ()) -
En este caso, el Hacer un movimiento método devolverá la primera casilla vacía en el tablero.
Pero supongamos que se llama así:
int m = MakeAMove (nuevo BetterPlayer ()) -
En este caso, el Hacer un movimiento método devolverá una mejor pensada movimiento porque la BetterPlayer clase utiliza un mejor algoritmo para determinar el próximo movimiento del jugador.