Vererbung in Java

Warum die Vererbung in objektorientierten Programmiersprachen wie Java so mächtig ist!

In der objektorientierten Programmierung ist die Vererbung ein essentieller Bestandteil. Durch die Vererbung können bestimmten Eigenschaften wie Attribute oder Methoden auf andere Klassen übertragen werden.

Die Vererbung kann man sich folgendermaßen vorstellen. Man hat eine Oberklasse (Superklasse), die über den Subklassen, also den Klassen steht, die von der Superklasse erben sollen. Ein anschauliches Beispiel wäre als Superklasse die Klasse Tier und als Subklasse die Klasse Haustier. Jedes Haustier ist zweifelsohne ein Tier, aber jedes Tier nicht ein Haustier, oder wer hat bei sich zuhause einen Löwen? Um zu zeigen, dass die Klasse einer „Unterklasse“ der Superklasse ist, schreibt ergänzt man sie mit einem extends + „Superklasse“. Sie nachfolgenden Quellcode:

Beispielcode einer Superklasse und einer Unterklasse

class Tier {

}

class Haustier extends Tier{

}

Folgende Bestandteile werden in eine Subklasse nie mitvererbt:

  • Konstruktoren
  • statische Datenelemente
  • statische Methoden
  • private Elemente

Abstrakte Klassen

Befasst man sich mit der Vererbung in Java, dann wird man irgendwann auch auf den Begriff der Abstrakten Klasse stoßen. Eine abstrakte Klasse implementiert selbst keine Funktionalität, sondern dient viel mehr als eine Art Muster für die Subklassen. Von einer abstrakten Klasse kann man keine Instanz erzeugen und sobald eine Klasse eine abstrakte Methode besitzt ist sie eine abstrakte Klasse.
Leite man nun eine Klasse von einer abstrakten Klasse ab, muss diese abgeleitete Klasse selbst nicht abstrakt sein. Allerdings muss die abgeleitete Klasse alle Methoden der abstrakten Klasse vollständig implementiert haben. Wichtig ist dabei, dass die Signaturen der Vaterklasse 1:1 übernommen werden. Eine Abweichung ist nicht möglich!