Heim > Java > javaLernprogramm > Hauptteil

Mehrstufige Vererbung in Java

PHPz
Freigeben: 2024-08-30 15:25:57
Original
898 Leute haben es durchsucht

Vererbung ist eines der wichtigen Merkmale von OOPS-Konzepten. Es hilft bei der Wiederverwendung von Code, indem es die Funktionen einer Klasse, die als übergeordnete Klasse bezeichnet wird, von einer anderen Klasse, der sogenannten untergeordneten Klasse, erbt. Wenn sich die Vererbung auf mehr als zwei Ebenen erstreckt, spricht man von mehrstufiger Vererbung. Wenn eine neue Klasse Features von einer Klasse ableitet, die von einer Basisklasse abgeleitet wurde, spricht man von einer mehrstufigen Vererbung. Die neue Klasse soll ein Enkel einer übergeordneten Klasse sein.

WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 Probetests

Zum Beispiel ist A die übergeordnete Klasse, Klasse B ist ihr untergeordnetes Element und C ist die untergeordnete Klasse von B und das Enkelkind von A. Ebenso ist A die übergeordnete Klasse für Klasse B und die große übergeordnete Klasse für Klasse C.

Mehrstufige Vererbung in Java

Syntax der mehrstufigen Vererbung in Java

Sehen wir uns die Syntax der mehrstufigen Vererbung in Java an, die unten angegeben ist:

class A{
//class A is parent of class B
//class A is grand parent of class C
public A(){
//A constructor
}
public void fun1(){
//function in Parent Class
}
}
class B extends A{
//class B is a child class of class A
//class B is a parent class of class C
public B(){
//class B constructor
}
}
class C extends B{
//class C is a child class of class B
//class C is grand child class of class A
public C(){
//Class C constructor
}
}
public class Test{
public static void main(String[] args){
C obj = new C();
}
}
Nach dem Login kopieren

Für die Implementierung der mehrstufigen Vererbung muss es eine Basisklasse geben, z. B. A. Dann muss es eine abgeleitete Klasse B geben, die Klasse A erweitert, und Klasse C erweitert A.

Wie funktioniert die mehrstufige Vererbung in Java?

Mehrstufige Vererbung ist eine Art der Erweiterung der Funktionen einer abgeleiteten Klasse auf eine andere neue Klasse. Da die Merkmale der übergeordneten Klasse auf mehrere Ebenen erweitert werden, wird diese Art der Vererbung als mehrstufige Vererbung bezeichnet. Wenn eine untergeordnete Klasse eine übergeordnete Klasse erweitert, kann sie alle Funktionen der übergeordneten Klasse nutzen. Wenn es also eine Klasse gibt, die Funktionen dieser abgeleiteten Klasse erweitert, dann wird sie als Enkel der Basisklasse bezeichnet, die alle Funktionen der übergeordneten und untergeordneten Klasse aufweist.

Betrachten Sie eine Klasse A als übergeordnete Klasse, Klasse B als untergeordnete Klasse von Klasse A und Klasse C als untergeordnete Klasse von Klasse B. Wenn ein Objekt für Klasse C erstellt wird, sagen Sie obj wie oben angegeben. Wenn wir dieses Objekt deklarieren, wird der Konstruktor der Klasse C aufgerufen. Wie wir wissen, wird während des Konstruktors einer untergeordneten Klasse zunächst der Konstruktor ihrer übergeordneten Klasse aufgerufen. Wenn wir also C() aufrufen, wird der B()-Konstruktor aufgerufen, und da B eine untergeordnete Klasse der Klasse B ist, wird auch A() aufgerufen. Dann geht die Kontrolle wieder an die untergeordnete Klasse über. Daher werden in der folgenden Serie Konstruktoren ausgeführt:

A() – > B() – > C()

Aber wenn eine Methode mit diesem Objekt einer untergeordneten Klasse aufgerufen wird, wird zunächst geprüft, ob diese Methode mit derselben Signatur in der untergeordneten Klasse vorhanden ist. Wenn nicht, wird die Steuerung an die übergeordnete Klasse weitergeleitet, um die Methode zu finden. Wenn also in diesem Fall fun1() mit dem Objekt obj aufgerufen wird, geht die Steuerung an C und stellt fest, dass es keine solche Methode gibt; somit geht die Kontrolle an B und damit an Klasse A.

Der Grund dafür ist, dass man die Methoden der übergeordneten Klasse in ihrer untergeordneten Klasse leicht neu definieren kann, was als Methodenüberschreiben bezeichnet wird. Daher wird der überschriebenen Methode zunächst der Vorzug gegeben. Auf diese Weise implementiert die mehrstufige Vererbung die Vererbungsfunktion in Klassen auf mehreren Ebenen. Diese Art der Vererbung wird am häufigsten bei der Implementierung einer Datenerweiterung verwendet, d. h. dem Prozess der Erhöhung der Vielfalt und Menge vorhandener Daten, ohne den vorhandenen Code zu aktualisieren. Es hilft auch, durch die Anwendung einfacher Transformationen Variabilität in das verfügbare Trainingsmodell einzuführen.

Beispiele für mehrstufige Vererbung

Sehen wir uns einige Beispiele der mehrstufigen Vererbung in Java an.

Code:

class Electronics {
public Electronics(){
System.out.println("Class Electronics");
}
public void deviceType() {
System.out.println("Device Type: Electronics");
}
}
class Television extends Electronics {
public Television() {
System.out.println("Class Television");
}
public void category() {
System.out.println("Category - Television");
}
}
class LED extends Television {
public LED() {
System.out.println("Class LED");
}
public void display_tech() {
System.out.println("Display Technology- LED");
}
}
public class Tester {
public static void main(String[] arguments) {
LED led = new LED();
led.deviceType();
led.category();
led.display_tech();
}
}
Nach dem Login kopieren

Ausgabe:

Mehrstufige Vererbung in Java

Erklärung: Im obigen Beispiel ist die Klasse Electronics eine allgemeine Klasse, die eine Methode device_type() für alle elektronischen Geräte bereitstellt. Dann haben wir die Klasse „TV“, die die Klasse „Electronics“ erweitert, die das Elektronikgerät angibt und über einen Methodennamen verfügt – Category(), um den Typ des elektronischen Geräts anzuzeigen. Dann erweitert die Klasse LED die Klasse Television, um die für ihre Anzeige verwendete Technologie anzugeben. Es verfügt über die Methode display_tech(), um anzuzeigen, dass es sich bei der Technologie um LED handelt.

Wenn wir in der Hauptmethode ein Objekt der LED-Klasse erstellen, verwenden wir es, um die Methode für die gesamte übergeordnete Klasse aufzurufen. Wenn ein Konstruktor einer untergeordneten Klasse aufgerufen werden soll, wird zuerst der Konstruktor der übergeordneten Klasse aufgerufen. Wenn also new LED() aufgerufen wird, wird zuerst new Television() aufgerufen. Weiter wird in diesem Konstruktor new Electronics() aufgerufen und zeigt – Class Electronics.

an

Dann wird es an den Fernsehkonstruktor zurückgegeben und zeigt die Klasse „Fernsehen“ an. Anschließend kehrt es zur LED-Klasse zurück und zeigt die Klasse „LED“ an. Wenn eine Methode mithilfe eines Objekts der LED-Klasse aufgerufen wird, geht die Steuerung zuerst zur LED-Klasse und versucht, die Methode „device_type()“ zu finden. Wenn sie nicht in der LED-Klasse gefunden wird, geht sie zur Television-Klasse, um die Methode zu finden, und weiter, wenn sie nicht gefunden wird Im Fernsehunterricht geht er auch zu seiner weiteren Oberklasse „Elektronik“, findet diese Methode und führt sie aus.

Fazit

Mehrstufige Vererbung ist eine großartige Technik, um den Hauptvorteil der Vererbung umzusetzen, nämlich die Wiederverwendbarkeit und Lesbarkeit des Codes über mehrere Ebenen hinweg. Es trägt dazu bei, Variabilität und Diversität in den vorhandenen Code einzuführen, der das grundlegende Schulungsmaterial bereitstellt. Dieses Verfahren wird als Codedokumentation bezeichnet.

Das obige ist der detaillierte Inhalt vonMehrstufige Vererbung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage