Ein wichtiges Konzept in der objektorientierten Programmierung ist die Vererbung. Es bietet eine Möglichkeit für Objekte, Beziehungen untereinander zu definieren. Wie der Name schon sagt, kann ein Objekt Merkmale von einem anderen Objekt erben.
Konkret kann ein Objekt seinen Zustand und sein Verhalten an seine Kinder weitergeben. Damit die Vererbung funktioniert, müssen die Objekte gemeinsame Merkmale aufweisen.
In Java können Klassen von anderen Klassen übernommen werden, die von anderen übernommen werden können, und so weiter. Dies liegt daran, dass sie Features von der darüber liegenden Klasse bis zur obersten Object-Klasse erben können.
Nehmen wir an, wir bilden eine Klasse namens Human, die unsere physischen Eigenschaften repräsentiert. Es ist eine allgemeine Klasse, die Sie, mich oder irgendjemanden auf der Welt repräsentieren könnte. Sein Zustand verfolgt Dinge wie die Anzahl der Beine, die Anzahl der Arme und die Blutgruppe. Es hat Verhaltensweisen wie Essen, Schlafen und Gehen.
Der Mensch ist gut darin, einen Überblick darüber zu bekommen, was uns alle gleich macht, aber er kann mir zum Beispiel nichts über geschlechtsspezifische Unterschiede erzählen. Dafür müssten wir zwei neue Klassentypen namens Mann und Frau erstellen. Der Zustand und das Verhalten dieser beiden Klassen unterscheiden sich in vielerlei Hinsicht voneinander, mit Ausnahme derjenigen, die sie von Human erben.
Die Vererbung ermöglicht es uns daher, den Zustand und das Verhalten der übergeordneten Klasse in ihr untergeordnetes Element einzubeziehen. Die untergeordnete Klasse kann dann den Status und das Verhalten erweitern, um die Unterschiede widerzuspiegeln, die sie darstellt. Der wichtigste Aspekt dieses Konzepts ist, dass die untergeordnete Klasse eine speziellere Version des übergeordneten Elements ist.
In der Beziehung zwischen zwei Objekten ist eine Superklasse der Name der Klasse, von der geerbt wird. Es klingt wie eine Super-Duper-Klasse, aber denken Sie daran, dass es die allgemeinere Version ist. Bessere Namen könnten die Basisklasse oder einfach die Elternklasse sein.
Um diesmal ein realistischeres Beispiel zu geben, könnten wir eine Superklasse namens Person haben. Sein Status enthält den Namen, die Adresse, die Größe und das Gewicht der Person sowie Verhaltensweisen wie einkaufen gehen, das Bett machen und fernsehen.
Wir könnten zwei neue Klassen erstellen, die von der Person Student and Worker erben. Sie sind spezialisiertere Versionen, da sie zwar Namen, Adressen, Fernsehen und Einkäufe haben, aber auch unterschiedliche Eigenschaften aufweisen.
Der Arbeitnehmer könnte einen Staat haben, der eine Berufsbezeichnung und einen Beschäftigungsort besitzt, während der Student Daten zu einem Studienbereich und einer Bildungseinrichtung besitzt.
Stellen Sie sich vor, Sie definieren eine Personenklasse:
public class Person
Eine neue Klasse kann durch Erweitern dieser Klasse erstellt werden:
public class Mitarbeiter erweitert Person
Die Personenklasse ist die Oberklasse der Employee-Klasse.