Video: Apa Itu Inheritas, Polymorfisme dan Enkapsulasi Pada Pemrograman Java 2024
Polymorfie is een fraaie computerwetenschap die verwijst naar de mogelijkheid van Java om basisklasse-variabelen te gebruiken om naar subklasse-objecten te verwijzen, bij te houden tot welke subklasse een object behoort, en gebruik de overschreven methoden van de subklasse, ook al is de subklasse niet bekend wanneer het programma wordt gecompileerd.
Oef! Dat is een mondvol. Waar het op neer komt, is dat wanneer een parameter een bepaald type oproept, je in plaats daarvan een object kunt gebruiken dat is gemaakt met een subklasse van dat type.
Stel dat je een toepassing ontwikkelt die de eerbiedwaardige Tic-Tac-Toe-game kan spelen, en je maakt een klasse met de naam Speler die een van de spelers vertegenwoordigt. Deze klasse heeft een openbare methode genaamd move die een int retourneert om aan te geven welk vakje van het bord de speler wil markeren.
Om de zaken eenvoudig te houden, kiest de verplaatsingsmethode blindelings het eerste lege vierkant op het bord als het beweegt. Dat is natuurlijk een vreselijke strategie om te winnen bij Tic-Tac-Toe. Daarom besloot je om een betere versie van de klasse te maken, genaamd BetterPlayer. U implementeert de klasse BetterPlayer als een subklasse van de klasse Player maar overschrijft de verplaatsingsmethode, zodat de klasse BetterPlayer intelligentere bewegingen maakt dan de klasse Player.
Stel dat je ook een methode hebt geschreven genaamd MakeAMove in de hoofdklasse voor de toepassing Tic-Tac-Toe (TicTacToe genaamd). De MakeAMove-methode ziet er ongeveer zo uit:
public void MakeAMove (Player p) {int i = p. bewegen (); return i;}
Je zou de MakeAMove-methode als volgt kunnen noemen:
int m = MakeAMove (nieuwe speler ());
In dit geval retourneert de MakeAMove-methode het eerste lege vierkant op het bord.
Maar stel dat je het zo noemt:
int m = MakeAMove (nieuwe BetterPlayer ());
In dit geval zal de MakeAMove-methode een beter doordachte zet opleveren omdat de klasse BetterPlayer een beter algoritme gebruikt om de volgende zet van de speler te bepalen.