[JAVA] Polymorphismus

Lesen Sie p491 bis p592 der klaren Einführung in Java und schreiben Sie über den Polymorphismus, mit dem Sie besonders zufrieden sind.

Was ist Polymorphismus?

Grob gesagt ist Polymorphismus ein Konzept, mit dem Sie mehrere ähnliche Dinge, die sich streng voneinander unterscheiden, als dasselbe behandeln können. Im Nachschlagewerk wurde es mit einer Rechnung verglichen. Wenn Sie einer primitiven Person eine 10.000-Yen-Rechnung geben, denken Sie, dass es sich um ein Papier mit einem Bild handelt. Ich glaube nicht, dass es für irgendetwas verwendet werden kann, auch wenn ich es gerne sehe. Ich bin glücklich, einem Menschen eine 10.000-Yen-Rechnung zu geben. Weil ich weiß, dass das Papier eine Rechnung ist und gegen etwas eingetauscht werden kann. Es ist so. Kurz gesagt, "dasselbe kann anders verstanden werden" und "die Verwendungsmethode ändert sich je nachdem, was Sie davon halten". In Bezug auf die Vererbung ausgedrückt, ist es wie Papier ← Papier mit Bildern ← Rechnungen? Papier hat eine Methode zum Abwischen von Wasser. Es gibt eine Methode zum Hinzufügen und Genießen des Papiers, auf dem das Bild gezeichnet ist (Personen, die es nicht genießen können, selbst wenn sie das Bild sehen, werden diesmal nicht berücksichtigt. Jeder genießt es, das Bild zu sehen). Und die beiden ersteren Methoden + eine Methode, die gegen Dinge ausgetauscht werden kann, werden hinzugefügt. Das Wichtigste ist, dass Rechnungen auch "Wischwasser" und "Viel Spaß beim Anschauen" haben. Die Nutzung steigt je nachdem, was Sie von der Rechnung halten. Es scheint, dass wir angeben müssen, was der Computer als Papier betrachten soll.

Vorteile des Polymorphismus

Ich werde in bestimmten Situationen, in denen das Konzept des Polymorphismus nützlich ist, anhand des Codes im Nachschlagewerk erklären.

public class Main { 
  public static void main(String[] args){
	Character[] c = new Character[5];

	c[0] = new Hero();
	c[1] = new Hero();
	c[2] = new Thief();
	c[3] = new Wizard();
	c[4] = new Wizard();

	//Bleib in einem Gasthaus
	for (Character ch :c ) {
		//Stellen Sie 50 HP wieder her
		ch.addHp(50);	
	}
  }
}

Dieses Nachschlagewerk enthält den Code zum Einstellen des Rollenspiels. Eine Gruppe von 5 Personen mit unterschiedlichen Berufen bleibt im Gasthaus und erhält für alle 50 HP zurück. Es wird angenommen, dass alle Berufsklassen (Held, Dieb, Zauberer) den Charaktertyp erben. Hier werden alle Instanzen der Klasse jeder Besetzung in dem Array mit dem Namen Zeichentyp c der Superklasse gespeichert. Dann wird das Element von c durch die for-Anweisung gedreht, und 50 wird durch die Methode addHp, die die Besetzungsklasse hat, zu HP hinzugefügt. Die Fähigkeit, Instanzen vom Typ Unterklasse in dieser Variablen vom Typ Oberklasse zu speichern, ist ein Merkmal und ein Vorteil des Polymorphismus. Streng unterschiedliche Klassen, können aber zugeordnet werden. Wenn dies nicht möglich ist, müssen Sie jeweils eine Zeile schreiben, um 50 HP für jede Instanz jeder Berufsklasse wiederherzustellen. Es ist schwer, wenn es 1000 Instanzen gibt. Auf diese Weise ist es polymorph, dass sich Programmierer amüsieren können, indem sie ähnliche Dinge als ungefähr dasselbe behandeln.

Zusammenfassung

Die Eigenschaft, dass sich etwas vom Polymorphismus unterscheidet, kann grob als dasselbe angesehen werden. Umgekehrt kann dasselbe mit einem kleinen Unterschied als unterschiedlich behandelt werden. Aufgrund dieser Eigenschaft können Programmierer verschiedene Vorteile genießen.

Recommended Posts

Polymorphismus
Polymorphismus
Polymorphismus-Quiz
[Java] Polymorphismus
Über Polymorphismus
Java (Polymorphismus)
Verkapselung, Polymorphismus
Über Java-Polymorphismus super ()
Java (Verdienste des Polymorphismus)