Vererbung ist eines der Kernkonzepte der objektorientierten Programmierung. Bei der Programmierung stellt das Wort Vererbung eine Beziehung dar, in der eine untergeordnete Klasse den Status und das Verhalten einer übergeordneten Klasse annimmt.
Der Zweck der Vererbung in der Softwareentwicklung besteht darin, die Wiederverwendung sicherer und zuverlässiger Software zu erleichtern. Einer der Hauptvorteile der Verwendung der Vererbung besteht darin, dass redundanter Code in Ihren Programmen eliminiert wird.
Wie Vererbung funktioniert
Die Idee hinter der Vererbung ist, dass viele Klassen oder Objekte dieselben Attribute und Methoden haben. Um zuverlässige Software zu erstellen, können neue Klassen jetzt aus bereits vorhandenen verwandten Klassen abgeleitet und bei Bedarf auf vorhandene Zustände und Verhaltensweisen erweitert werden.
Ein reales Beispiel dafür, wie Vererbung funktioniert, wäre die Betrachtung von Früchten. Dies ist ein breites Etikett, das dazu dient, eine Reihe verschiedener Elemente zu kapseln.
Ein Apfel ist eine Frucht und eine Orange auch. Eine Orange ist jedoch kein Apfel, sodass Sie keine Früchte als Lagerware hätten, wenn Sie ein Geschäft besäßen. Vielleicht könnten Sie einen Obstabschnitt in Ihrem Inventar haben, und unter diesem Abschnitt würden Sie spezifischere Gegenstände wie Äpfel und Orangen haben.
So funktioniert Vererbung.
Vererbung in Java verwenden
Die Vererbung kann in jeder Programmiersprache verwendet werden, die das verwendet objektorientiertes Programmierparadigma. Die genaue Art und Weise, wie die Vererbung verwendet wird, hängt jedoch von der jeweiligen Programmiersprache ab.
Zum Beispiel, C ++ ist auch eine objektorientierte Programmiersprache. C ++ unterstützt die sogenannte Mehrfachvererbung, während Java nur die Einzelvererbung unterstützt.
Dies bedeutet, dass in Java eine übergeordnete Klasse viele untergeordnete Klassen haben kann, aber jede untergeordnete Klasse nur eine einzige übergeordnete Klasse haben kann (einzelne Vererbung). Es gibt jedoch eine Möglichkeit, eine indirekte Mehrfachvererbung in Java zu erreichen, indem eine Beziehung zwischen Großeltern, Eltern und Kindern erstellt wird.
Erstellen der übergeordneten Klasse in Java
Das Auswählen einer übergeordneten Klasse aus einem Dokument mit Softwareanforderungen wird als objektorientierte Analyse bezeichnet. Während dieses Prozesses wird häufig der Ausdruck „ist ein“ verwendet, um mögliche Vererbungsbeziehungen zu identifizieren. Wenn Sie sich an unserem obigen Beispiel orientieren, sollten Sie sehen können, dass Obst unsere Elternklasse ist.
Beispiel für eine Obstelternklasse
öffentliche Klasse Obst {
//Variable Aussage
geschützter String-Samen;
protected String skinColor;
geschützter Saitengeschmack;
// Standardkonstruktor
öffentliches Obst () {
seed = "";
skinColor = "";
Geschmack = "";
}
// Primärkonstruktor
öffentliche Frucht (String Samen, String SkinColor, String Geschmack) {
this.seed = seed;
this.skinColor = skinColor;
this.taste = Geschmack;
}
// Getter und Setter
public String getSeed () {
Samen zurückgeben;
}
public void setSeed (String seed) {
this.seed = seed;
}
public String getSkinColor () {
return skinColor;
}
public void setSkinColor (String skinColor) {
this.skinColor = skinColor;
}
public String getTaste () {
Geschmack zurückgeben;
}
public void setTaste (String-Geschmack) {
this.taste = Geschmack;
}
// Methode essen
public void eat () {
// allgemeiner Code zum Essen einer Frucht
}
// Saftmethode
öffentlicher Leersaft () {
// allgemeiner Code zum Entsaften einer Frucht
}
}
Einer der bemerkenswertesten Aspekte der oben genannten übergeordneten Klasse ist der Zugriffsmodifikator, der bei jeder Variablendeklaration verwendet wird. Der Modifikator "geschützter" Zugriff ist ideal für die Verwendung in übergeordneten Klassen, da er verhindert, dass nicht untergeordnete Klassen Zugriff auf die Datenattribute der übergeordneten Klasse erhalten.
Weiter unten im Code werden Sie mit Konstruktoren, Gettern und Setzern vertraut gemacht, die allgemeine Bausteine für jede Java-Klasse sind. Schließlich werden Sie mit zwei Methoden (Saft und Essen) vertraut gemacht, die in der Elternklasse unseres Programms erstellt wurden, da sie für alle Früchte universell sind - alle Früchte können gegessen und entsaftet werden.
Erstellen von untergeordneten Klassen in Java
Untergeordnete Klassen werden normalerweise als spezialisierte oder abgeleitete Klassen bezeichnet, da sie den Status und das Verhalten eines übergeordneten Elements erben und diese Attribute häufig so anpassen, dass sie spezifischer sind.
Wenn Sie mit unserem Beispiel fortfahren, sollten Sie sehen können, warum Orange eine geeignete Kinderklasse der oben genannten Obstklasse ist.
Beispiel für eine orangefarbene Kinderklasse
öffentliche Klasse Orange erweitert Obst {
//variable Aussage
private int supremes;
// Standardkonstruktor
public Orange () {
supremes = 0;
}
// primärer Konstruktor
public Orange (String-Samen, String-Hautfarbe, String-Geschmack, int supremes) {
super (Samen, Hautfarbe, Geschmack);
this.supremes = supremes;
}
// Getter und Setter
public int getupremes () {
return supremes;
}
public void setsupremes (int supremes) {
this.supremes = supremes;
}
// Methode essen
public void eat () {
// wie man eine Orange isst
}
// Saftmethode
öffentlicher Leersaft () {
// wie man Saft und Orange
}
// Peel-Methode
public void peel () {
// wie man eine Orange schält
}
}
Es gibt einen Unterschied zwischen dem Aussehen einer regulären Java-Klassendeklaration und dem, was wir in unserem obigen Code haben. Das Schlüsselwort "erweitert" wird in Java verwendet, um die Vererbung zu ermöglichen.
In unserem obigen Beispiel erweitert die untergeordnete Klasse (orange) die übergeordnete Klasse (Frucht). Daher kann der Status und das Verhalten der Fruchtklasse jetzt von der Orangenklasse abgerufen und geändert werden.
Das eindeutige Attribut unserer orangefarbenen Klasse wird mit dem Variablennamen supremes identifiziert (dies ist der offizielle Name für die kleinen Segmente in Orangen). Hier kommt die Spezialisierung ins Spiel; Nicht alle Früchte haben Supremes, aber alle Orangen. Daher ist es logisch, die Supremes-Variable für die Orangenklasse zu reservieren.
Das Hinzufügen der „Peel“ -Methode zu den bereits vorhandenen „Eat“ - und „Juice“ -Methoden ist ebenfalls logisch, da zwar nicht alle Früchte geschält werden können, Orangen jedoch häufig geschält werden.
Sie sollten bedenken, dass wir sie nicht in unsere Orangenklasse aufnehmen müssten, wenn wir nicht beabsichtigen würden, die bestehenden Methoden „Essen“ und „Saft“ zu ändern. Die Methoden in der Orangenklasse überschreiben alle ähnlichen Methoden in der Fruchtklasse. Wenn also alle Früchte auf die gleiche Weise gegessen und entsaftet würden, müssten wir diese Methoden nicht in der Orangenklasse erstellen.
Die Rollenkonstruktoren spielen bei der Vererbung eine Rolle
Standardmäßig werden übergeordnete Klassenkonstruktoren von untergeordneten Klassen geerbt. Wenn ein untergeordnetes Klassenobjekt erstellt wird, bedeutet dies, dass auch ein übergeordnetes Klassenobjekt automatisch erstellt wird.
Zurück zu unserem Beispiel: Jedes Mal, wenn ein neues orangefarbenes Objekt erstellt wird, wird auch ein Fruchtobjekt erstellt, da eine Orange eine Frucht ist.
Wenn hinter den Kulissen ein untergeordnetes Klassenobjekt erstellt wird, wird zuerst der Konstruktor der übergeordneten Klasse aufgerufen, gefolgt vom Konstruktor der untergeordneten Klasse. Wenn in unserer obigen orangefarbenen untergeordneten Klasse ein orangefarbenes Objekt ohne Parameter erstellt wird, wird unser Standardkonstruktor für Fruchtklassen aufgerufen, gefolgt von unserem standardmäßigen Auftragnehmer für orangefarbene Klassen.
Die "Super" -Methode in unserem obigen Primärkonstruktor ist erforderlich, da sie angibt, dass der Primärkonstruktor - und nicht der Standardkonstruktor - der übergeordneten Fruchtklasse sollte immer dann aufgerufen werden, wenn ein orangefarbenes Objekt mit Parametern vorhanden ist erstellt.
Jetzt können Sie die Vererbung in Java verwenden
In diesem Artikel konnten Sie lernen, was Vererbung ist, wie sie funktioniert und warum sie ein so wichtiges Konzept in der Programmierung ist. Sie können jetzt Ihre Vererbungsbeziehungen mit der Programmiersprache Java erstellen. Darüber hinaus wissen Sie jetzt, wie Sie die Einzelvererbungsregel von Java umgehen können, indem Sie eine Großelternbeziehung erstellen.
Bildnachweis: Andreas Wohlfahrt /Pexels
Um die objektorientierte Programmierung richtig zu machen, müssen Sie über die Vererbung Bescheid wissen und wissen, wie sie die Codierung vereinfachen und Fehler reduzieren kann.
Weiter lesen
- Programmierung
- Java
- Objekt orientierte Programmierung
Kadeisha Kean ist ein Full-Stack-Softwareentwickler und technischer / technologischer Redakteur. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen. Herstellung von Material, das von jedem Technologie-Neuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gern, entwickelt interessante Software und bereist die Welt (durch Dokumentarfilme).
Abonniere unseren Newsletter
Melden Sie sich für unseren Newsletter an, um technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote zu erhalten!
Noch ein Schritt…!
Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.