Inhaltsverzeichnis
Dies ist der zweite Teil einer Reihe von Tutorials, die sich auf die Überprüfung der grundlegenden Themen der Java-Sprache konzentrieren, um den Leser auf die Verwendung des Spring Frameworks vorzubereiten. Den ersten Teil dieser Tutorial-Reihe finden Sie hier. In diesem Tutorial werden wir über Polymorphismus sprechen.Das Wort Polymorphismus kommt vom griechischen "poly", was viele bedeutet, und "morpho", was Form bedeutet, und im Allgemeinen bezieht es sich auf die Fähigkeit, mehrere Formen anzunehmen. In der objektorientierten Programmierung sprechen wir von Variablen oder Referenzen, die die Form mehrerer verschiedener Objekte annehmen können.
Nachdem Sie nun wissen, woher das Konzept kommt, versuchen wir, es mit der Sprache Java in Verbindung zu bringen. Wie wir im vorherigen Tutorial gesehen haben, ermöglicht uns das Konzept der "Vererbung", eine Eltern-Kind-Beziehung zwischen zwei privaten Klassen herzustellen:
In diesem Beispiel besteht die Vererbungsbeziehung zwischen der Klasse Hund und die klasse Tier, Klasse Katze und die klasse Tier und die klasse Pferd und die klasse Tier, beachten Sie, dass zwischen Hund, Katze Ja Pferd es besteht keine direkte beziehung.
Ausgehend von diesem Diagramm können wir sagen, dass ein Hund ein Tier, eine Katze ein Tier und ein Pferd ein Tier IST. Wenn Sie die Beziehung in Java so ausdrücken können, können wir sagen, dass eine Variable der Klasse Tier ist polymorph, da sie die Form a . annehmen kann Pferd, von a Katze oder ein Hund.
Im vorherigen Tutorial haben wir auch gesehen, dass ALLE Klassen direkt oder indirekt von der Klasse erben Objekt, in diesem Fall ist das Diagramm etwas vollständiger, wenn wir es so definieren:
Und dies kann um mehrere Stufen nach unten erweitert werden (im Wesentlichen hängt die Stufenobergrenze von Ihrer JVM ab, liegt jedoch normalerweise über 40). Ein Tier IST also ein Objekt, eine Katze IST ein Tier und eine Katze (durch Transitivität) IST ein Objekt.
Java ermöglicht es Ihnen dann, Klassenreferenzen an hohen Punkten in dieser Struktur zu verwenden, um auf darunter liegende Objekte in der Struktur zu verweisen. Zum Beispiel:
public static void main (String [] args) {Object o1 = new Object(); Tier a1 = neues Tier (); Hund p = neuer Hund (); o1 = a1; o1 = p; a1 = p; Objekt o2 = neues Tier (); Objekt o3 = neuer Hund (); Tier a2 = neuer Hund (); boolesch b1 = o1 == o2; boolesch b2 = o1 == o3; boolesch b3 = o1 == a2; if (b1 || b2 || b3) {Nichts tun (); }}
Wie Sie sehen, kann eine Object-Variable auf ein Animal-Objekt oder ein Dog-Objekt verweisen, genau wie eine Animal-Variable auf ein Dog-Objekt verweisen kann. Die daraus abgeleitete Polymorphismusfähigkeit führt dazu, dass wir ein Objekt manipulieren können, ohne genau wissen zu müssen, um welches Objekt es sich handelt. Sehen wir uns die folgende Beispielmethode an:
public static void doSomething (Tier a) {a.getColorDePelo (); }
Wenn eine Anwendung diese Methode verwendet, weiß sie nicht, welches Tier sie per Parameter empfängt, es kann ein Hund, eine Katze, ein Pferd oder später ein Maulwurf, ein Elefant, ein Mandrill oder eine andere Klasse sein, die ist vom Tiertyp.
Der Schlüssel zu dieser Eigenschaft besteht darin, dass sie es dem Programm ermöglicht, Methoden bestimmter Unterklassen zu verwenden, ohne genau zu wissen, um welche Art von Animal es sich handelt, und somit ein signifikantes Abstraktionsniveau in Bezug auf zukünftige Implementierungen der Animal-Klasse aufrechtzuerhalten.
Im nächsten Tutorial werden wir tiefer in das Thema Polymorphismus einsteigen, wir werden sehen, was Interfaces sind und wie man auf Interfaces fokussiert programmiert, was zum Verständnis der folgenden Tutorials beitragen wird.
Das Thema ist etwas länger geworden, als ich erwartet hatte, aber nicht verzweifeln! Es ist wichtig, diese Konzepte richtig zu verstehen, bevor Sie Dependency Injection starten, um zu verstehen, wie Spring funktioniert.
Ich hoffe, wir fahren Woche für Woche mit diesen Tutorials fort, vergessen Sie nicht, Ihre Kommentare bis zum nächsten Mal zu hinterlassen!Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben