[JAVA] Polymorphismus, den auch Anfänger der Objektorientierung verstehen können

Was ist Polymorphismus?

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.

Kurz gesagt, Polymorphismus ist eine übliche Hauptroutine.

Was ist eine übliche Hauptroutine?

image.png

Warum Polymorphismus verwenden?

Implementierung von Polymorphismus


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
}

Spezifische Beispiele für Polymorphismus

1. Anordnung unter Verwendung von Polymorphismus

Aufrufer (Klasse mit Hauptmethode)

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.
    }
}

Callee (Superklasse)

Player.java


public class Player {

    private int win;

    public void janken() {
        //Janken-Verarbeitung
    }

    public int getWin() {
        return win;
    }
}

Angerufene (Unterklasse)

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.

2. Beispiel für die Verwendung von Polymorphismus als Argument

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();
    }
}

Zusammenfassung

Was ist Polymorphismus?

Warum Polymorphismus verwenden?

Verweise

Wenn Sie mehr über die Objektorientierung erfahren möchten, empfehle ich Ihnen, diese zu lesen. Sie können es bei Amazon kaufen.

Recommended Posts

Polymorphismus, den auch Anfänger der Objektorientierung verstehen können
"Vererbung", die auch Anfänger der Objektorientierung verstehen können
Grundlagen von jQuery, die selbst Freeter verstehen können
Erklären Sie "objektorientiert", das selbst Grundschüler auf Stufe 5 verstehen können
Scala impliziert, dass sogar Java-Shops verstehen können
[JQuery] Ein Typ, den selbst Anfänger gut verstehen konnten
Aufbau einer Android-Umgebung, die selbst Affen verstehen können [React Native]
Zusammenfassung der objektorientierten Programmierung mit Java
Aufbau einer JSP + Eclipse + Jetty-Entwicklungsumgebung, die selbst Java-Anfänger ausführen können
Ich habe versucht, Java mit einer Reihe zu lernen, die Anfänger klar verstehen können
Bis zur Programmierung können Anfänger Lambda-Ausdrücke verwenden
Objektorientiert, das von Feen verstanden werden kann
Objekt orientierte Programmierung
Kenntnis der Objektorientierung für ein halbes Jahr Programmierung
[Buchbesprechung] Unit-Test am Programmierstandort, der ohne Erfahrung durchgeführt werden kann
Verstehe beim Lesen des Artikels! Zusammenfassung der Inhalte, die Elasticsearch-Anfänger unterdrücken möchten