Polymorphismus in Java

polymorphism ist eine Phantasie Informatik Begriff, der zu Unterklasse Objekte zu verweisen Basis-Klasse zu verwenden Variablen auf Java die Fähigkeit bezieht sich davon zu verfolgen Unterklasse ein Objekt gehört, und überschriebenen Methoden der Unterklasse verwenden, obwohl die Unterklasse nicht, wenn das bekannt ist, Programm zusammengestellt.

Puh! Das ist ein Schluck. Was es läuft darauf hinaus, dass, wenn ein Parameter für einen bestimmten Typ nennt, können Sie ein Objekt aus einer Unterklasse dieser Art statt erstellt wurde.

Beispiel: Angenommen, Sie eine Anwendung zu entwickeln, die das ehrwürdige Spiel Tic-Tac-Toe spielen können, und erstellen Sie eine Klasse mit dem Namen Spieler daß für einen der Spieler. Diese Klasse hat eine Öffentlichkeit Methode mit dem Namen Bewegung dass wieder ein int das Quadrat der Platine, um anzuzeigen, die Spieler zu markieren will.

Um die Dinge einfach halten, die Bewegung Methode wählt blind den ersten leeren Platz auf dem Board als seine Bewegung. Das heißt, natürlich, eine schreckliche Strategie für bei Tic-Tac-Toe zu gewinnen. Daher entscheiden Sie, eine bessere Version der Klasse zu erstellen, die so genannte BetterPlayer. Sie implementieren die BetterPlayer Klasse als Unterklasse der Spieler Klasse, aber außer Kraft setzen die Bewegung Verfahren, so dass die BetterPlayer Klasse macht intelligenter bewegt als die Spieler Klasse.

Angenommen, Sie haben auch eine Methode geschrieben haben, benannt MakeAMove in der Hauptklasse für die Tic-Tac-Toe-Anwendung (sie genannt TicTacToe). Das MakeAMove Methode sieht wie folgt aus:

public void MakeAMove (Player p) {int i = p.move () - Rückkehr i-}

Sie könnten der Aufruf MakeAMove Verfahren wie folgt aus:

int m = MakeAMove (neue Spieler ()) -

In diesem Fall ist die MakeAMove Verfahren wird die erste leere Platz auf dem Brett zurück.

Aber angenommen, Sie es so nennen:

int m = MakeAMove (neu BetterPlayer ()) -

In diesem Fall ist die MakeAMove Verfahren wird eine bessere dacht Bewegung zurück, weil die BetterPlayer Klasse verwendet einen besseren Algorithmus des Spielers nächsten Schritt zu bestimmen.

Menü