Jeder weiß, dass die Vererbung der Unterklasse von übergeordneten Klassen eine Vererbung vom Typ ist, einschließlich Attributen und Methoden! Wenn die Unterklasse und die Elternklasse die gleiche Signatur haben, wird sie überschrieben! Wenn die Attribute der Unterklasse und der übergeordneten Klasse gleich sind, wird die übergeordnete Klasse ihre eigenen Attribute verbergen!
Wenn ich jedoch die von der übergeordneten Klasse und der untergeordneten Klasse erstellten Referenzen verwende, um auf das von der untergeordneten Klasse erstellte Objekt zu verweisen, was ist das Ergebnis des Eigenschaftswerts oder der Methode im aufgerufenen Unterrichtsklassenobjekt?
Schauen Sie sich den Code an:
public class fielddemo {public static void main (String [] args) {student t = new Student ("Jack"); Person p = t; // Die Referenz, die von der übergeordneten Klasse erstellt wurde, zeigt auf das von der Subklassensystem erstellte Objekt.out.println (t.name+","+P.Name); System.out.println (t.getName ()+","+p.getName ()); }} Klasse Person {String Name; int Alter; public String getName () {return this.name; }} Klasse Schüler erweitert die Person {String -Name; // Das Attributname des Attributs und des übergeordneten Klasse -Attributnamens sind gleich, aber es ist nicht mit dem Attributnamen der übergeordneten Klasse während der Entwicklung überein! ! public student (string name) {this.name = name; Super.Name = "Rose"; // Wert zu Attributen in der übergeordneten Klasse} public String getName () {return this.name; }} Das Rückgabeergebnis ist:
Jack, Rose
Jack, Jack
Der Grund ist: In Java sind Attribute an Typen gebunden und Methoden sind an Objekte gebunden!
Der Artikel ist sehr einfach, hat aber auch einen bestimmten praktischen Wert. Ich hoffe, es wird für das Lernen aller hilfreich sein.