Super ist häufiger in Android, und ich verstehe es ohne Java Foundation nicht, also habe ich Zeit, es zu lernen.
Die Verwendung von Super in Java -Klassen zur Verweise auf die Komponenten der Basisklasse ist relativ einfach, und das Beispiel lautet wie folgt:
Klasse Vaterklasse {public int value; public void f () {value = 100; System.out.println ("VaterClass.Value:"+Wert); }} Klasse ChildClass erweitert die Vaterklasse {public int value; public void f () {super.f (); Wert = 200; System.out.println ("ChildClass.Value:"+Wert); System.out.println (Wert); System.out.println (Super.Value); }} public class test1 {public static void main (String [] args) {ChildClass cc = new ChildClass (); cc.f (); }} Die endgültige Ausgabe ist:
Vaterklasse.Value: 100ChildClass.Value: 200200100
Darüber hinaus wird Super auch in der Vererbungskonstruktion verwendet. Die spezifischen Regeln sind wie folgt:
1. Die Baumethode seiner Basisklasse muss während des Bauprozesses einer Unterklasse aufgerufen werden.
2. Unterklassen können Super (Argument_List) verwenden, um die Konstruktormethode der Basisklasse in ihrem eigenen Konstruktor aufzurufen.
3. Wenn der Konstruktor der Unterklasse im Konstruktor der Basisklasse nicht angezeigt wird, ruft das System standardmäßig den parameterlosen Konstruktor der Basisklasse auf.
4. Wenn der Unterklassenkonstruktor den Aufruf an den Basisklassenkonstruktor nicht zeigt und die Basisklasse keinen Konstruktor ohne Parameter hat, tritt ein Kompilierungsfehler auf.
Die Beispiele sind wie folgt: (Es ist am besten, hier selbst selbst damit zu experimentieren)
Klasse Superclass {private int n; SuperClass () {System.out.println ("call SuperClass ()"); } SuperClass (int n) {System.out.println ("SuperClass rufen ("+n+")"); }} Klasse Subclass erweitert die Superklasse {private int n; Unterklasse (int n) {// Wenn die Superklasse -Konstruktionsmethode nicht in der Unterklasse -Konstruktionsmethode geschrieben ist, wird das System standardmäßig die übergeordnete Klasse ohne Parameter aufrufen // Es entspricht dem Schreiben von hier: // Super (); System.out.println ("Rufen Sie SuberClass ("+n+")); this.n = n; } Subclass () {Super (300); // Der Konstruktor der Elternklasse muss während des Konstruktionsprozesses der Unterklasse aufgerufen werden, und Super muss im ersten Satz geschrieben werden (es gibt zuerst ein Vater und dann das Sohn). }} public class test2 {public static void main (String [] args) {subclass sc1 = new subclass (); Subklasse SC2 = neue Unterklasse (400); }} Das Endergebnis ist:
Rufen Sie die Superklasse an (300) an, subclass () rufen Sie SuperClass () Call Subclass (400) an
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.