El polimorfismo en java

El polimorfismo es un término informático de lujo que se refiere a la capacidad de Java para utilizar las variables de la clase base para referirse a objetos de subclase, no perder de vista que subclase pertenece un objeto, y el uso de métodos sobrescritos de la subclase a pesar de que la subclase no se conoce cuando el programa se compila.

¡Menos mal! Eso es un bocado. Lo que se reduce a es que cada vez que un parámetro requiere un tipo particular, puede utilizar 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 reproducir el venerable juego Tic-Tac-Toe, y se crea una clase llamada Jugador que representa uno de los jugadores. Esta clase tiene un público método llamado movimiento que devuelve un int para indicar qué casilla del tablero el jugador quiere marcar.

Para simplificar las cosas, la movimiento método escoge ciegamente la primera plaza vacía en el tablero como su movimiento. Esto es, por supuesto, una estrategia terrible para ganar en Tic-Tac-Toe. Por lo tanto, decide crear una versión mejor de la clase, llamado BetterPlayer. Implementar la BetterPlayer clase como una subclase de la Jugador clase, pero anular el movimiento de modo que el método BetterPlayer clase hace movimientos más inteligentes que los Jugador clase.

Supongamos que usted 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 se ve algo como esto:

public void MakeAMove (Jugador p) {int i = p.move () - Devuelve i-}

Usted puede llamar al Hacer un movimiento método de la siguiente manera:

int m = MakeAMove (nueva Player ()) -

En este caso, el Hacer un movimiento método devolverá la primera plaza vacía en el tablero.

Pero supongamos que se llama así:

int m = MakeAMove (nueva BetterPlayer ()) -

En este caso, el Hacer un movimiento método devolverá un mejor pensada movimiento porque la BetterPlayer clase utiliza un mejor algoritmo para determinar el próximo movimiento del jugador.




» » » » El polimorfismo en java