Zum Hauptinhalt springen
Veröffentlicht am

Vererbung in Java

Teilen:

Einführung

Vererbung ist einer der vier Pfeiler der objektorientierten Programmierung (OOP), neben Kapselung, Polymorphismus und Abstraktion. Durch Vererbung ist es möglich, eine neue Klasse auf Basis einer bereits vorhandenen zu erstellen, was die Wiederverwendung von Code und den Aufbau hierarchischer Beziehungen ermöglicht.

Grundlagen der Vererbung

Vorteile der Vererbung

  1. Code-Wiederverwendung: Es ist nicht notwendig, denselben Code wiederholt zu schreiben. Die Unterklasse erbt alle Mitglieder der Oberklasse.
  2. Erweiterbarkeit: Die vorhandene Oberklasse kann erweitert werden, um neue Attribute und Verhaltensweisen einzubinden.
  3. Klassenhierarchie: Stellt eine hierarchische Beziehung zwischen Oberklasse und Unterklasse her.

Einschränkungen der Vererbung in Java

In Java wird Vererbung mit dem Schlüsselwort extends implementiert. Es gibt jedoch einige Einschränkungen:

  1. Einfachvererbung: Java unterstützt keine Mehrfachvererbung über Klassen. Eine Klasse kann nur von einer einzigen Klasse erben.
  2. Konstruktoren und statische Initialisierer: Diese werden nicht von Unterklassen geerbt.
  3. Assoziationsbeziehung: Wenn eine Klasse eine andere erbt, handelt es sich um eine „ist ein"-Beziehung (is-a). Wenn zum Beispiel Kind eine Erweiterung von Elternteil ist, dann ist Kind ein Elternteil.

Das Schlüsselwort protected

Das Schlüsselwort protected in Java ermöglicht es, dass auf ein Klassenmitglied direkt von jeder Klasse im selben Paket oder von Unterklassen zugegriffen werden kann. Es ist eine Möglichkeit, mehr Zugriff als private zu gewähren, aber dennoch den allgemeinen Zugriff wie bei public einzuschränken.

package com.caffeinealgorithm.programaremjava;

public class Vererbung {
  public void Run() {
    var person = new Kind();
    person.information();
    person.lieblingsessen();

    /*
      Name: Nelson Silva
      Alter: 28
      Mein Lieblingsessen ist Meeresfrüchte-Risotto.
    */
  }
}

class Elternteil {
  protected String nachname = "Silva";

  public void lieblingsessen() {
    System.out.println("Mein Lieblingsessen ist Meeresfrüchte-Risotto.");
  }
}

class Kind extends Elternteil {
  private String vorname = "Nelson";
  private int alter = 28;

  public void information() {
    System.out.printf("Name: %s %s\n", vorname, nachname);
    System.out.printf("Alter: %d\n", alter);
  }
}

Fazit

Vererbung ist ein mächtiges Werkzeug in Java, das Programmierern ermöglicht, modulareren und wiederverwendbareren Code zu schreiben. Wenn du die Grundlagen und Feinheiten der Vererbung verstehst, bist du besser gerüstet, um die komplexen Herausforderungen der objektorientierten Programmierung in Java zu meistern.

Happy coding!