Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

Java-Vererbung meistern

Erkunden Sie Java-Vererbung in der Tiefe – verstehen Sie ihre Prinzipien, reale Beispiele und wie Sie sie für sauberen, wiederverwendbaren Code anwenden.

Vererbung ist ein Eckpfeiler der objektorientierten Programmierung, der es ermöglicht, eine neue Klasse basierend auf einer bestehenden zu erstellen.

Die abgeleitete Klasse heißt Unterklasse (Kind oder abgeleitet), während die Klasse, die sie erweitert, die Oberklasse (Eltern- oder Basisklasse) ist. Das Schlüsselwort extends stellt diese Beziehung her.

class Tier { // Methoden und Felder } class Hund extends Tier { // Hund erbt Felder und Methoden von Tier }

Hier erbt Hund alle Member von Tier – die Unterklasse erhält die Funktionalität des Elternteils.


Beispiel 1: Grundlegende Vererbung

class Tier { String name; public void essen() { System.out.println("Ich kann essen"); } } class Hund extends Tier { public void anzeigen() { System.out.println("Mein Name ist " + name); } } class Haupt { public static void main(String[] args) { Hund labrador = new Hund(); labrador.name = "Rohu"; labrador.anzeigen(); labrador.essen(); } }

Ausgabe:

Mein Name ist Rohu Ich kann essen

In diesem Beispiel erbt Hund name und essen() von Tier, sodass ein Hund-Objekt direkt darauf zugreifen kann.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

Die ist-ein-Beziehung

Vererbung in Java stellt eine ist-ein-Beziehung dar: Eine Unterklasse ist eine spezialisierte Form ihrer Oberklasse.

Diese natürlichen Hierarchien rechtfertigen den Einsatz von Vererbung.


Methodenüberschreibung

Wenn eine Unterklasse eine Methode mit derselben Signatur wie ihre Oberklasse definiert, überschreibt die Unterklassen-Methode die Version der Oberklasse. Dies ermöglicht Laufzeit-Polymorphie.

Beispiel 2: essen() überschreiben

class Tier { public void essen() { System.out.println("Ich kann essen"); } } class Hund extends Tier { @Override public void essen() { System.out.println("Ich esse Hundefutter"); } public void bellen() { System.out.println("Ich kann bellen"); } } class Haupt { public static void main(String[] args) { Hund labrador = new Hund(); labrador.essen(); labrador.bellen(); } }

Ausgabe:

Ich esse Hundefutter Ich kann bellen

Der essen()-Aufruf auf labrador wird zur überschriebenen Methode in Hund aufgelöst.

Tipp: Die @Override-Annotation ist optional, aber dringend empfohlen – sie stellt sicher, dass der Compiler prüft, dass Sie tatsächlich eine Methode überschreiben.


super verwenden, um auf die Oberklasse zuzugreifen

Beim Überschreiben ermöglicht das super-Schlüsselwort den Aufruf der Eltern-Implementierung.

Beispiel 3: super in essen()

class Tier { public void essen() { System.out.println("Ich kann essen"); } } class Hund extends Tier { @Override public void essen() { super.essen(); System.out.println("Ich esse Hundefutter"); } public void bellen() { System.out.println("Ich kann bellen"); } } class Haupt { public static void main(String[] args) { Hund labrador = new Hund(); labrador.essen(); labrador.bellen(); } }

Ausgabe:

Ich kann essen Ich esse Hundefutter Ich kann bellen

Hier ruft super.essen() die in Tier definierte Methode auf, bevor die Logik der Unterklasse ausgeführt wird.

Ebenso kann super Oberklassen-Konstruktoren aufrufen.


Protected-Member in der Vererbung

Als protected markierte Felder oder Methoden sind für Unterklassen unabhängig vom Paket zugänglich.

Beispiel 4: Auf Protected-Member zugreifen

class Tier { protected String name; protected void anzeigen() { System.out.println("Ich bin ein Tier."); } } class Hund extends Tier { public void infoAbrufen() { System.out.println("Mein Name ist " + name); } } class Haupt { public static void main(String[] args) { Hund labrador = new Hund(); labrador.name = "Rocky"; labrador.anzeigen(); labrador.infoAbrufen(); } }

Ausgabe:

Ich bin ein Tier. Mein Name ist Rocky

Die Unterklasse kann das protected Feld name frei lesen und modifizieren und anzeigen() aufrufen.


Warum Vererbung verwenden?


Typen der Vererbung

Java unterstützt fünf konzeptionelle Vererbungsmodelle – jedes in unterschiedlichen Szenarien nützlich.

1. Einfache Vererbung

Eine Klasse erweitert nur eine Oberklasse.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

2. Mehrstufige Vererbung

Eine Unterklasse wird zur Oberklasse einer anderen Klasse, was eine Kette bildet.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

3. Hierarchische Vererbung

Mehrere Unterklassen erben von einer einzelnen Oberklasse.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

4. Mehrfache Vererbung

Java erlaubt nicht, dass eine Klasse mehr als eine Klasse erweitert, aber Schnittstellen bieten einen Weg, dieses Muster zu erreichen.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

Hinweis: Mehrfache Vererbung kann über Schnittstellen implementiert werden; siehe Java implements multiple inheritance.


5. Hybrid-Vererbung

Eine Mischung aus zwei oder mehr Vererbungstypen – zum Beispiel Kombination aus hierarchischer und mehrfacher Vererbung.

Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele

Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  4. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  5. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  6. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  7. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  8. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  9. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen
  10. C# Vererbung: Wiederverwendbaren & wartbaren Code erstellen