Video: Java Polymorphism Tutorial - 031 2024
Polymorfism är en dekorativ datorvetenskaplig term som refererar till Java: s förmåga att använda basklassvariabler för att referera till underklassobjekt, hålla reda på vilken underklass ett objekt tillhör, och använd överdriven metoder för underklassen trots att underklassen inte är känd när programmet sammanställs.
Puh! Det är en munnen. Vad det pekar på är att när en parameter kräver en viss typ, kan du istället använda ett objekt skapat från en underklass av den typen.
Anta att du utvecklar ett program som kan spela det ärafulla spelet Tic-Tac-Toe, och du skapar en klass som heter Player som representerar en av spelarna. Den här klassen har en offentlig metod med namnet flytt som returnerar ett int för att ange vilket torg på brädet spelaren vill markera.
För att hålla det enkelt, väljer rörelsemetoden blint den första tomma kvadraten på brädet som dess rörelse. Det är förstås en hemsk strategi för att vinna på Tic-Tac-Toe. Därför bestämmer du dig för att skapa en bättre version av klassen, som heter BetterPlayer. Du implementerar BetterPlayer-klassen som en underklass i spelarklassen, men åsidosätter flyttmetoden så att BetterPlayer-klassen gör mer intelligenta drag än spelarklassen.
Antag att du också har skrivit en metod som heter MakeAMove i huvudklassen för Tic-Tac-Toe-applikationen (kallad TicTacToe). MakeAMove-metoden ser något ut så här:
public void MakeAMove (Player p) {int i = p. flytta(); returnera i;}
Du kan ringa MakeAMove-metoden så här:
int m = MakeAMove (ny spelare ());
I det här fallet returnerar MakeAMove-metoden den första tomma rutan på brädet.
Men anta att du kallar det så här:
int m = MakeAMove (new BetterPlayer ());
I det här fallet kommer MakeAMove-metoden att ge ett bättre genomtänkt drag eftersom BetterPlayer-klassen använder en bättre algoritm för att bestämma spelarens nästa drag.