Erforschung der Vererbung in der Programmiersprache Java

Erforschung der Vererbung in der Programmiersprache Java

Vererbung ist eines der Kernkonzepte der objektorientierten Programmierung. In der Programmierung stellt das Wort Vererbung eine Beziehung dar, in der eine untergeordnete Klasse den Zustand 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 von Vererbung besteht darin, dass redundanter Code in Ihren Programmen eliminiert wird.





So ändern Sie den iTunes-Sicherungsspeicherort Windows 10

Wie Vererbung funktioniert

Die Idee hinter der Vererbung ist, dass viele Klassen oder Objekte einige der gleichen Attribute und Methoden haben. Daher können im Sinne der Herstellung zuverlässiger Software neue Klassen jetzt aus bereits existierenden verwandten Klassen schöpfen und bei Bedarf bestehende Zustände und Verhaltensweisen erweitern.





Ein praktisches Beispiel dafür, wie Vererbung funktioniert, wäre die Betrachtung von Früchten. Dies ist ein breites Etikett, das dazu dient, eine Reihe verschiedener Artikel einzukapseln.

Ein Apfel ist eine Frucht und eine Orange auch. Eine Orange ist jedoch kein Apfel, sodass Sie keine Früchte als Lagerartikel haben, wenn Sie einen Laden besitzen. Vielleicht könnten Sie einen Obstbereich in Ihrem Inventar haben, und unter diesem Abschnitt würden Sie spezifischere Gegenstände wie Äpfel und Orangen haben.



So funktioniert Vererbung.

Verwenden von Vererbung in Java

Vererbung kann in jeder Programmiersprache verwendet werden, die das objektorientierte Programmierparadigma verwendet. Die genaue Art und Weise, in der 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.

Das bedeutet, dass in Java eine Elternklasse viele Kindklassen haben kann, aber jede Kindklasse kann nur eine einzige Elternklasse haben (Einzelvererbung). Es gibt jedoch eine Möglichkeit, eine indirekte Mehrfachvererbung in Java zu erreichen, indem eine Großeltern-, Eltern- und Kindbeziehung erstellt wird.





Erstellen der Elternklasse in Java

Der Prozess der Auswahl einer Elternklasse aus einem Dokument mit Softwareanforderungen wird als objektorientierte Analyse bezeichnet. Während dieses Prozesses wird häufig der Ausdruck a verwendet, um mögliche Vererbungsbeziehungen zu identifizieren. Anhand unseres obigen Beispiels sollten Sie erkennen können, dass Obst unsere Elternklasse wäre.

Beispiel für eine Obst-Elternklasse


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Einer der bemerkenswertesten Aspekte der obigen Elternklasse ist der Zugriffsmodifizierer, der bei jeder Variablendeklaration verwendet wird. Der Protected Access Modifier ist ideal für die Verwendung in Elternklassen, da er verhindert, dass Nicht-Kindklassen Zugriff auf die Datenattribute der Elternklasse erhalten.

Weiter unten im Code werden Ihnen Konstruktoren, Getter und Setter vorgestellt, die allgemeine Bausteine ​​für jede Java-Klasse sind. Schließlich werden Sie in zwei Methoden (Saft und Essen) eingeführt, die in der Elternklasse unseres Programms entwickelt wurden, weil 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 Zustand und das Verhalten von einem übergeordneten Element erben und diese Attribute oft spezifischer anpassen.

Wenn Sie mit unserem Beispiel fortfahren, sollten Sie verstehen, warum Orange eine geeignete Unterklasse der obigen Obstklasse wäre.

Beispiel für eine orangefarbene Kinderklasse


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Es gibt einen Unterschied zwischen dem Aussehen einer regulären Java-Klassendeklaration und dem, was wir in unserem obigen Code haben. Das Schlüsselwort extend 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 Zustand und das Verhalten der Obstklasse jetzt von der Orangenklasse abgerufen und geändert werden.

Das einzigartige Attribut unserer Orangenklasse wird mit dem Variablennamen supremes identifiziert (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 Variable Supremes für die Orangenklasse zu reservieren.

Das Hinzufügen der Schälmethode zu den bereits bestehenden Essens- und Saftmethoden ist auch logisch, denn obwohl nicht alle Früchte geschält werden können, werden Orangen oft geschält.

Sie sollten bedenken, dass wir sie nicht in unseren Orangenkurs aufnehmen müssten, wenn wir die bestehenden Ess- und Saftmethoden nicht ändern wollten. Die Methoden in der orange-Klasse überschreiben alle ähnlichen Methoden in der Fruit-Klasse. 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 Rolle der Konstrukteure bei der Vererbung

Standardmäßig werden übergeordnete Klassenkonstruktoren von untergeordneten Klassen geerbt. Wenn also ein untergeordnetes Klassenobjekt erstellt wird, bedeutet dies, dass automatisch auch ein übergeordnetes Klassenobjekt erstellt wird.

Zurück zu unserem Beispiel: Jedes Mal, wenn ein neues Orangenobjekt erstellt wird, wird auch ein Fruchtobjekt erstellt, da eine Orange eine Frucht ist.

Hinter den Kulissen wird beim Erstellen eines untergeordneten Klassenobjekts zuerst der Konstruktor der übergeordneten Klasse aufgerufen, gefolgt vom Konstruktor der untergeordneten Klasse. Wenn in unserer orangefarbenen untergeordneten Klasse oben ein orangefarbenes Objekt ohne Parameter erstellt wird, wird unser Standard-Fruchtklassenkonstruktor aufgerufen, gefolgt von unserem Standard-Orangeklassenkontraktor.

Die super-Methode in unserem obigen Primärkonstruktor ist notwendig, weil sie angibt, dass der Primärkonstruktor – und nicht der Standardkonstruktor – der übergeordneten Fruit-Klasse immer dann aufgerufen werden soll, wenn ein orangefarbenes Objekt mit Parametern erstellt wird.

Jetzt können Sie Vererbung in Java verwenden

In diesem Artikel konnten Sie erfahren, was Vererbung ist, wie sie funktioniert und warum sie ein so wichtiges Konzept in der Programmierung ist. Sie können Ihre Vererbungsbeziehungen jetzt 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.

Image Credit: Andreas Wohlfahrt/ Pexels

Teilen Teilen Tweet Email So organisieren Sie Ihren objektorientierten Code mit Vererbung

Die richtige objektorientierte Programmierung erfordert Kenntnisse über Vererbung und wie sie die Codierung vereinfachen und Fehler reduzieren kann.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Java
  • Objekt orientierte Programmierung
Über den Autor Kadeisha Kean(21 Artikel veröffentlicht)

Kadeisha Kean ist Full-Stack-Softwareentwicklerin und technische/Technologie-Autorin. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen; Herstellung von Material, das von jedem Technikneuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gerne, entwickelt interessante Software und bereist die Welt (durch Dokumentationen).

Mehr von Kadeisha Kean

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren