Java Super Keywords
Das Super -Schlüsselwort ähnelt diesem, das verwendet wird, um eine Instanz der aktuellen Klasse darzustellen, und Super wird verwendet, um eine übergeordnete Klasse darzustellen.
Super kann in Unterklassen verwendet werden, um Mitgliedervariablen und Methoden der übergeordneten Klasse durch Punkte (.) zu erhalten. Super kann auch in Unterklassen von Unterklassen verwendet werden, und Java kann die Oberschicht automatisch verfolgen.
Das Verhalten der Elternklasse wird aufgerufen, so wie das Verhalten das Verhalten dieser Klasse ist und das Anrufverhalten in der übergeordneten Klasse nicht auftreten muss, sondern die Oberschicht automatisch verfolgen kann.
Funktionen des Super -Keywords:
Ruft eine Variable auf, die in der übergeordneten Klasse als privat erklärt wird.
Klicken Sie auf die abgedeckte Methode.
Repräsentiert den Konstruktor der übergeordneten Klassen als Methodenname.
Rufen Sie verborgene Variablen und überschriebene Methoden an
public class Demo {public void main (String [] args) {hunde obj = neuer hunde (); Deklarieren Sie eine Getter -Methode public String getDesc () {return desc; ) // das Methode der Elternklasse aufrufen ;}}
Auslaufergebnisse:
Tiere können Umzug gehen und runplease denken: Tiere sind die guten Freunde des Menschen
Die Move () -Methode kann auch in einigen Vorfahrklassen definiert werden, wie die Elternklasse der übergeordneten Klasse.
Um verborgene Variablen der Elternklasse über Super aufzurufen, müssen Sie die Getter -Methode in der übergeordneten Klasse deklarieren, da die Datenmitglieder, die als privat deklariert sind, für die Unterklasse nicht sichtbar sind.
Rufen Sie den Konstruktor der übergeordneten Klasse an
In vielen Fällen wird der Standardkonstruktor verwendet, um das übergeordnete Klassenobjekt zu initialisieren. Natürlich können Sie auch Super verwenden, um den Konstruktor anzuzeigen, der die übergeordnete Klasse aufruft.
public class Demo {public void main (String [] args) {Hund obj = neuer Hund ("Huahua", 3); this .name = name; ("Ich bin ein süßer Welpe, mein Name ist" + name + ", ich" + älter + "jährlich");
Auslaufergebnisse:
Ich bin ein süßer Welpe, mein Name ist Huahua, ich bin 3 Jahre alt
HINWEIS: Unabhängig davon, ob es Super () oder in diesem () ist, muss es in die erste Zeile des Konstruktors platziert werden.
Es ist erwähnenswert:
Ein weiterer Konstruktor wird im Konstruktor aufgerufen, und die Anrufaktion muss an der Startposition platziert werden.
Ein Konstruktor kann innerhalb einer anderen Methode als einem Konstruktor nicht aufgerufen werden.
Innerhalb eines Konstruktors kann nur ein Konstruktor aufgerufen werden.
Wenn Sie einen Konstruktor schreiben, ohne Super () oder dieses () anzurufen, fügt der Compiler automatisch einen Aufruf an den Konstruktor der übergeordneten Klassen ohne Parameter ein.
Beachten Sie schließlich den Unterschied zwischen Super und This: Super ist kein Verweis auf ein Objekt, und Super kann nicht einer anderen Objektvariablen zugewiesen werden.
Java Instanceof Operator <BR /> Polymorphism bringt ein Problem mit der Beurteilung der Art des Objekts, auf das tatsächlich eine Variable verwiesen wird. C ++ verwendet Runtime-Typ-Informationen (RTTI) und Java verwendet den Instanzbetreiber.
Der Instanz des Operators wird verwendet, um den tatsächlichen Typ des von einer Variablen verwiesenen Objekts zu bestimmen. Bitte beachten Sie den folgenden Code:
public Final Class Demo {public static void main (String [] args) {// auf die Instanz der People -Klasse -Personen obj = new People (); Objekt ");} if (obj Instance von Menschen) {System.out.println (" Ich bin ein Mensch ");} if (obj Instance von Lehrer) {System.out.println (" Ich bin ein Lehrer ");} if (OBJ Instance von Präsident) {System.out.println ("Ich bin der Auftraggeber"); Zeile // Beispiele beziehen sich auf die Lehrerklasse obj = neuer Lehrer (); "Ich bin ein Mensch"); );
Auslaufergebnisse:
Ich bin ein Objekt Ich bin ein Mensch -------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------
Wie zu sehen ist, gibt es Instanceof zurück, wenn sich die Variable auf eine Instanz der aktuellen Klasse oder ihrer Unterklasse bezieht, ansonsten falsch.