Es wurde wie folgt auf Wikipedia geschrieben.
Polymorphismus beschreibt die Natur des Typsystems einer Programmiersprache und dass jedes Element der Programmiersprache (Konstanten, Variablen, Ausdrücke, Objekte, Funktionen, Methoden usw.) zu mehreren Typen gehört. Bezieht sich auf das Eigentum der Vergebung. Auch Polymorphismus, Polymorphismus, Polymorphismus, Diversität genannt.
Es ist schwer zu sagen, dass jedes Element der Programmiersprache zu mehreren Typen gehört.
Door dr = new Door(); // OK:Die Typen auf der linken und rechten Seite stimmen überein (Hinweis: Tür ist eine selbstgemachte Klasse)
Door dr2 = new String(); // NG:Kompilierungsfehler, da die Typen auf der linken und rechten Seite nicht übereinstimmen
ClassA a = new ClassB(); // OK
//Klasse A ist eine Superklasse, Klasse B ist eine Unterklasse
public class ClassB extends ClassA {
//Kürzung
}
Die Variable Spieler wird als "Array von Spielerklassen" deklariert. Dem Inhalt des Arrays wird eine Instanz einer anderen Klasse zugewiesen (eine Unterklasse der Player-Klasse).
Dies ist Polymorphismus (übliche Hauptroutine). Es gibt eine Möglichkeit, "Spieler [X] .janken ()" aufzurufen, aber es gibt mehrere Methoden, die aufgerufen werden können (Person's Janken, Robot's Janken).
MainClass.java
public class MainClass {
public static void main(String[] args) {
// (1)Generiere einen Spieler zum Spielen
Player[] players = new Player[3];
players[0] = new Person(); //Mann
players[1] = new Robot(); //Roboter A.
players[2] = new Robot(); //Roboter B.
// (2)Lassen Sie jeden Spieler der Reihe nach spielen
players[0].janken(); //Mann
players[1].janken(); //Roboter A.
players[2].janken(); //Roboter B.
}
}
Player.java
public class Player {
private int win;
public void janken() {
//Janken-Verarbeitung
}
public int getWin() {
return win;
}
}
Person.java
public class Person extends Player {
//Kürzung
}
Robot.java
public class Robot extends Player {
//Kürzung
}
Selbst wenn sich in Zukunft die Verarbeitung der Janken-Methode ändert, muss der Aufrufer in Zukunft weder (1) noch (2) ändern. Auch wenn das Programm wie unten gezeigt geändert wird, muss der Aufrufercode nur in (1) geändert werden.
Nehmen wir an, dass sich die Spezifikationen des Janken-Programms geändert haben. Ich habe den Code "[Add]" früher zu MainClass.java hinzugefügt.
MainClass.java
public class MainClass {
public static void main(String[] args) {
// (1)Generiere einen Spieler zum Spielen
Player[] players = new Player[3];
players[0] = new Person(); //Mann
players[1] = new Robot(); //Roboter A.
players[2] = new Robot(); //Roboter B.
//[Ergänzung] Der Prozess zur Registrierung für das Janken-Turnier wurde hinzugefügt
Entry[] entry = new Entry[3];
entry[0] = new Entry(players[0]); //Mann
entry[1] = new Entry(players[1]); //Roboter A.
entry[2] = new Entry(players[2]); //Roboter B.
// (2)Lassen Sie jeden Spieler der Reihe nach spielen
players[0].janken(); //Mann
players[1].janken(); //Roboter A.
players[2].janken(); //Roboter B.
}
}
Entry.java
public class Entry {
private int win;
//Konstrukteur
public Entry(Player player) {
//Holen Sie sich Spielerinformationen (Verlauf der Siege usw.), um sich für das Janken-Turnier zu registrieren
win = player.getWin();
}
}
Wenn Sie mehr über die Objektorientierung erfahren möchten, empfehle ich Ihnen, diese zu lesen. Sie können es bei Amazon kaufen.
Recommended Posts