Polymorfisme i Java

August 15  by Eliza

Polymorfisme er en fancy informatikk begrep som refererer til Javaâ € ™ s evne til å bruke basen-klassevariabler for å referere til underklassen objekter, holde oversikt over hvilke underklasse et objekt tilhører, og bruke styres metoder for underklassen selv om underklassen ISNA € ™ t kjent når programmet er kompilert.

Puh! Thatâ € ™ s munnfull. Hva det koker ned til er at når en parameter krever en bestemt type, kan du bruke et objekt skapt fra en underklasse av den typen i stedet.

For eksempel anta youâ € ™ re utvikle et program som kan spille den ærverdige spillet Tic-Tac-Toe, og du oppretter en klasse som heter Player som representerer en av spillerne. Denne klassen har en offentlig metode kalt trekk som returnerer en int å indikere hvilken kvadratet av styret spilleren ønsker å markere.

Å holde ting enkelt, farten metode blindt velger den første tomme plassen på brettet som sitt trekk. Det er, selvfølgelig, en forferdelig strategi for å vinne på Tic-Tac-Toe. Derfor, du bestemmer deg for å lage en bedre versjon av klassen, kalt BetterPlayer. Du gjennomføre BetterPlayer klassen som en underklasse av spilleren klasse, men overstyre farten metode, slik at BetterPlayer klassen gjør mer intelligente trekk enn spilleren klassen.

Anta at youâ € ™ ve også skrevet en metode som heter MakeAMove i hovedklassen for Tic-Tac-Toe program (kalt det TicTacToe). Den MakeAMove metoden ser omtrent slik ut:

public void MakeAMove (Player p)
{
int i = p.move ();
tilbake i;
}

Du kan kalle den MakeAMove metode som dette:

int m = MakeAMove (ny Player ());

I dette tilfellet vil MakeAMove metoden returnere den første tomme plassen på brettet.

Men antar at du kaller det slik:

int m = MakeAMove (ny BetterPlayer ());

I dette tilfellet vil MakeAMove metoden returnere en bedre gjennomtenkt trekk fordi den BetterPlayer klassen bruker en bedre algoritme for å bestemme Playera € ™ s neste trekk.