Aufgabe 7: Vererbung, super
Schlüsselwort und Methodenüberschreibung
Diese Aufgabe demonstriert die Vererbung, das Schlüsselwort super
und das Überschreiben von Methoden in Java. Lassen Sie uns den Code und seine Ausgabe aufschlüsseln.
Oma-Klasse:
Diese Klasse stellt die Basisklasse (Großelternklasse) dar. Es verfügt über ein name
-Feld und eine work()
-Methode.
<code class="language-java">package B15; public class Grandma { String name = "Stella"; // Note: Capitalized for consistency int age = 80; public void work() { System.out.println("Grandma is working."); // More descriptive output } }</code>
Mutterklasse:
Diese Klasse erbt von Grandma
. Es überschreibt die Methode work()
und fügt ein eigenes Feld name
hinzu. Das Schlüsselwort super
wird verwendet, um auf die Methoden Grandma
und name
von work()
zuzugreifen.
<code class="language-java">package B15; public class Mother extends Grandma { String name = "Arasi"; // Note: Capitalized for consistency int age = 50; public void work() { System.out.println("Mother is working."); // More descriptive output System.out.println("Mother's name = " + name); System.out.println("Grandma's name = " + super.name); System.out.println("Grandma's age = " + super.age); super.work(); } }</code>
Kinderkurs:
Diese Klasse erbt von Mother
. Es überschreibt die work()
-Methode und fügt eine study()
-Methode hinzu. Die main
-Methode erstellt ein Kid
-Objekt und ruft seine Methoden auf.
<code class="language-java">package B15; public class Kid extends Mother { String name = "Suman"; // Note: Capitalized for consistency int age = 30; public static void main(String[] args) { Kid kid = new Kid(); kid.work(); kid.study(); } public void work() { System.out.println("Kid is working."); // More descriptive output System.out.println("Kid's name = " + name); System.out.println("Mother's name = " + super.name); } public void study() { super.work(); System.out.println("Mother's age = " + super.age); System.out.println("Kid's name = " + name); System.out.println("Kid's age = " + age); System.out.println("Kid is studying."); // More descriptive output } }</code>
Erklärung der Ausgabe:
Die Ausgabe zeigt die Methodenaufrufe, die in der Vererbungshierarchie nach unten laufen. Wenn kid.work()
aufgerufen wird, wird zuerst die Kid
-Methode von work()
ausgeführt und „Kid arbeitet“ ausgegeben. Dann ruft kid.study()
super.work()
auf und führt die Mother
-Methode von work()
aus, die wiederum super.work()
erneut aufruft und die Grandma
-Methode von work()
ausführt. Das Schlüsselwort super
stellt sicher, dass die richtige Methode aus der übergeordneten Klasse aufgerufen wird. Die Ausgabe spiegelt die Werte der Variablen name
und age
auf jeder Ebene der Vererbungshierarchie wider.
Korrigierte und verbesserte Ausgabe:
Der verbesserte Code bietet eine aussagekräftigere Ausgabe und erleichtert so das Verständnis des Ausführungsablaufs. Die Ausgabe lautet nun:
<code>Kid is working. Kid's name = Suman Mother's name = Arasi Mother is working. Mother's name = Arasi Grandma's name = Stella Grandma's age = 80 Grandma is working. Mother's age = 50 Kid's name = Suman Kid's age = 30 Kid is studying.</code>
Das obige ist der detaillierte Inhalt vonAufgabe-7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!