In diesem Artikel wird ein grundlegendes Konzept im Bereich des Objektorientierten Konzepts von Java erörtert (versteckte Mitgliedsvariablen)
Bevor Sie dieses Problem diskutieren, schauen wir uns einen sehr einfachen Code an. Was ist das Datenergebnis der Methode?
/*** @Author Hollis 17/9/27. */ public class sublovers {public static void main (String [] args) {sub c1 = new sub (); System.out.println ("c1.s:" + c1.s); System.out.println ("c1.s:" + c1.s); System.out.println ("c1.say:" + c1.say ()); Super C2 = neuer Sub (); System.out.println ("C2.s:" + c2.s); System.out.println ("C2.s:" + c2.s); }} Klasse Super {String s = "Super"; String Says () {return "Hallo Super"; }} class sub erweitert Super {string S = "sub"; String Says () {return "Hallo Sub"; }}Ausgangsergebnis:
c1.s: sub c1.say: hello sub c2.s: super c2.say: Hallo Sub
Ist es das gleiche wie du denkst? Wenn es gleich ist, müssen Sie nicht weiter lesen. Weil das nicht schwierig ist, wissen Sie es einfach.
Schreiben Sie in Java um
In einem tiefen Verständnis des Umschreibens und Überladens in Java haben wir vorgestellt:
In dem Fall, in dem es in der Unterklasse von Java und der Elternklasse zwei Methoden mit derselben Namen und der Parameterliste gibt. Da sie die gleiche Methodensignatur haben, überschreiben neue Methoden in der Unterklasse die ursprünglichen Methoden in der übergeordneten Klasse.
Früher, weil Java die Vererbungsmethoden umschrieben, spiegelt dies auch den dynamischen Polymorphismus von Java wider.
Können Mitgliedsvariablen in Java umgeschrieben werden?
Die obige Java -Umschreibung der Einführung besagt deutlich, dass sich das Umschreiben auf die Methode bezieht. Mitgliedervariablen werden nicht erwähnt. Im obigen Beispiel können wir tatsächlich feststellen, dass Mitgliedsvariablen nicht neu geschrieben wurden.
Daher werden in Java Mitgliedsvariablen nicht umgeschrieben. Hier ist ein anderes Wort: Verstecken.
Versteck von Mitgliedervariablen in Java
Definition von versteckten Domänen in Java -Dokumentation:
In einer Klasse verbirgt ein Feld, das den gleichen Namen wie ein Feld in der Superklasse hat, das Feld der Superklasse, auch wenn ihre Typen unterschiedlich sind. In der Unterklasse kann das Feld in der Superklasse nicht mit seinem einfachen Namen verwiesen werden. Stattdessen muss das Feld über Super zugegriffen werden. Im Allgemeinen empfehlen wir nicht, Felder zu verstecken, da der Code schwer zu lesen ist.
Ins Chinesische übersetzt:
Wenn die Mitgliedsvariablen in der Unterklasse in einer Klasse den gleichen Namen wie die Mitgliedsvariablen in der übergeordneten Klasse haben, haben sie, selbst wenn sie unterschiedliche Typen haben, nur denselben Namen. Mitgliedervariablen in der übergeordneten Klasse sind versteckt. In Unterklassen können Mitgliedervariablen der übergeordneten Klasse nicht einfach durch Referenz zugegriffen werden. Stattdessen müssen die von der übergeordneten Klasse verborgenen Mitgliedsvariablen aus der Verweise auf die übergeordnete Klasse erhalten werden. Im Allgemeinen empfehlen wir nicht, Mitgliedervariablen zu verbergen, da der Code schwierig zu lesen ist.
Tatsächlich überschreibt die Unterklasse einfach die Mitgliedervariablen, die die übergeordnete Klasse überschreiben, nicht auf den Zugriff auf Mitgliedsvariablen nicht mit polymorphismus wie Methoden.
So greifen Sie auf versteckte Mitgliedsvariablen zu
Tatsächlich haben Sie anhand der vorherigen Beispiele und der Einführung in Mitgliedsvariablen bereits wissen, wie Sie auf verborgene Mitgliedsvariablen zugreifen können. Es soll die Referenz der übergeordneten Klasse verwendet werden, um auf Mitgliedervariablen zuzugreifen, wie z. Super c2 = new Sub(); System.out.println(" c2.s : " + c2.s);。 Oder verwenden Sie System.out.println(((Super)c1).s); .
Zusammenfassen
Das obige ist das Umschreiben von Methoden in Java und das Verstecken von Mitgliedervariablen, die Ihnen vom Herausgeber vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!