Java / Spring - Vererbung, Polymorphismus und Abhängigkeitsinjektion

Inhaltsverzeichnis
Wir werden uns 2 Konzepte der Java-Programmierung ansehen (Nachlass Ja Polymorphismus), um uns darauf vorzubereiten, ein fortgeschritteneres Konzept namens . zu verstehen Abhängigkeitsspritze Dies ist typisch für Frameworks wie Spring und Hibernate, die heute häufig verwendet werden und über die wir in zukünftigen Tutorials sprechen werden.
Nein, es bezieht sich nicht auf die Millionen, die Ihr reicher Onkel Ihnen hinterlassen hat, als er schließlich starb, es ist ein typisches Konzept der Java-Programmierung und besteht aus dem "Erben" von Feldern und Methoden, die zu einem . gehören Superklasse innerhalb eines Unterklasse.
Grundlagen der Vererbung:
  • Eine Klasse, die von einer anderen Klasse abgeleitet ist, heißt Unterklasse (oder erweiterte Klasse, Tochterklasse oder abgeleitete Klasse). Auch die Klasse, von der die Unterklasse wird abgeleitet heißt Superklasse (auch Basisklasse oder Elternklasse). In diesem Tutorial und in den folgenden Tutorials werde ich die Begriffe verwenden Unterklasse Ja Superklasse.
  • Speziell in Java, mit Ausnahme der Klasse Objekt, ALLE Klassen erben direkt an eine SINGLE Superklasse (einfache Vererbung). Falls die Oberklasse nicht explizit definiert wird, erbt jede Klasse implizit von der Klasse Objekt.
  • Eine Klasse kann von einer anderen Klasse erben, die von einer anderen Klasse erbt, die von einer anderen Klasse erbt, bis sie von der Klasse erbt Objekt, heißt es dann, dass diese Klasse von allen Klassen in der Hierarchie auf die Klasse "herabsteigt". Objekt.
Versuchen wir dies mit einem Beispiel zu vereinfachen:
Angenommen, wir haben die folgenden 3 Klassen im Vererbungspaket:
 Paketvererbung; öffentliche Klasse Hund {private int numberOfLegs; private String-Haarfarbe; privates String-Rennen; public int getNumberOfLegs () {Return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {Return-Rennen; } public void setRace (String-Rennen) {this.race = race; } public void bark () {System.out.println ("Der Hund macht WOW"); }} 

 Paketvererbung; öffentliche Klasse Cat {private int numberOfLegs; private String-Haarfarbe; privates String-Rennen; public int getNumberOfLegs () {Return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {Return-Rennen; } public void setRace (String-Rennen) {this.race = race; } public void meow() {System.out.println ("Die Katze macht MEOW"); }} 

 Paketvererbung; öffentliche Klasse Pferd {private int numberOfLegs; private String-Haarfarbe; privates String-Rennen; public int getNumberOfLegs () {Return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {Return-Rennen; } public void setRace (String-Rennen) {this.race = race; } public void neigh () {System.out.println ("Das Pferd macht IIIIGGGHHHH"); }} 

Es ist ersichtlich, dass die 3 Klassen 3 verschiedene Arten von Objekten erzeugen, aber mit mehreren ähnlichen Eigenschaften, tatsächlich sind sie bis auf die Bell-, Miau- und Wiehermethoden genau gleich. Daher wäre es unter Verwendung des Vererbungskonzepts angemessen, die gemeinsamen Merkmale in a . umzuschreiben Superklasse und ändern Sie jeden Unterklasse damit sie nur die entsprechende Methode wie folgt hinzufügen:
[Farbe = # a9a9a9]1[/Farbe]
Wir schaffen die Superklasse Tier:
 Paketvererbung; öffentliche Klasse Tier {privat int numberOfLegs; private String-Haarfarbe; privates String-Rennen; public int getNumberOfLegs () {Return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {Return-Rennen; } public void setRace (String-Rennen) {this.race = race; }} 

[Farbe = # a9a9a9]2 [/Farbe]
Wir modifizieren die 3 Unterklassen vorhandene, um von der Animal-Klasse zu erben (mit dem Schlüsselwort "extends") und fügen Sie einfach die einzelne Methode hinzu:
 Paketvererbung; public class Dog erweitert Animal {public void bark() {System.out.println ("Dog goes WOW"); }} 

 Paketvererbung; public class Cat erweitert Animal {public void meow() {System.out.println ("Die Katze macht MEOW"); }} 

 Paketvererbung; Public Class Horse erweitert Animal {public void neigh () {System.out.println ("Pferd tut IIIIGGGHHHH"); }} 

Auf diese Weise kulminieren wir das Thema "Vererbung" in Java, bald werden wir mit dem Konzept des "Polymorphismus" fortfahren, das eng mit "Vererbung" verwandt ist und uns helfen wird, das Konzept der "Dependency Injection" zu verstehen, um die Rahmen "Frühling".
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
wave wave wave wave wave