Schlüsselunterschied – das vs. super in Java
Die Schlüsselwörter ‚this‘und ‚super‘werden in der Java-Programmierung verwendet. Diese Schlüsselwörter können nicht als Variablen oder andere Bezeichnernamen verwendet werden. Java unterstützt die objektorientierte Programmierung (OOP). Das Programm oder die Software kann unter Verwendung von Objekten modelliert werden. Objekte sind unersättlich mit Klassen. Eine Säule der OOP ist die Vererbung. Es bietet Wiederverwendbarkeit von Code. Die bereits existierenden Klassen sind Oberklassen und die abgeleiteten Klassen Unterklassen. Das Schlüsselwort super kann verwendet werden, um auf ein Objekt der Oberklasse zu verweisen. Es gibt mehrere Objekte im System. Das Schlüsselwort „this“wird verwendet, um auf ein aktuelles Objekt zu verweisen. Der Hauptunterschied zwischen this und super ist, dass „this“eine Referenzvariable ist, die verwendet wird, um auf das aktuelle Objekt zu verweisen, während „super“eine Referenzvariable ist, die verwendet wird, um auf ein unmittelbares Oberklassenobjekt zu verweisen.
Was ist das in Java?
Das Schlüsselwort ‚this‘wird verwendet, um auf ein aktuelles Objekt zu verweisen. Verweisen Sie auf das angegebene Java-Programm.
Abbildung 01: Java-Programm verwendet dieses Schlüsselwort
In Java gibt es drei Arten von Variablen. Sie sind Instanzvariablen, lokale Variablen und Klassenvariablen. Gemäß dem obigen Programm hat die Klasse Employee zwei Instanzvariablen. Sie sind ID und Name. Lokale Variablen sind die Variablen, die zu Methoden gehören. Klassenvariablen werden von allen Objekten gemeinsam genutzt. ID und Name werden an den Employee-Konstruktor übergeben. Wenn der Programmierer id=id schreibt; Die Instanzvariablen werden nicht initialisiert, da der Konstruktor bereits über ID und Name verfügt. Es gibt keine Werte für Instanzvariablen. Wenn Sie sie drucken, wird also null angezeigt. Wenn Sie dies verwenden, bezieht es sich auf das aktuelle Objekt. Daher kann die Übergabe von ID und Name an den Konstruktor die Instanzvariablen setzen.
Das Schlüsselwort ‚this‘kann verwendet werden, um die aktuelle Klassenmethode aufzurufen. Beziehen Sie sich auf das angegebene Java-Programm.
öffentliche Klasse ThisDemo{
public static void main(String args){
MeineKlasse meineKlasse=new MeineKlasse();
meineKlasse. B();
}
}
Klasse MeineKlasse{
public void A(){
System.out.println(“A”);
}
public void B(){
System.out.printltn(“B”);
dies. A();
}
}
Die Klasse Myclass enthält zwei Methoden. Sie sind Methode A und B. Wenn Sie ein Objekt von Myclass erstellen und die Methode B aufrufen, wird B, A als Ausgabe ausgegeben. In Methode B gibt es nach dem Drucken von B eine Anweisung wie this. A(). Damit wurde die aktuelle Klassenmethode aufgerufen.
Es ist auch möglich, dieses Schlüsselwort zu verwenden, um den aktuellen Klassenkonstruktor aufzurufen. Verweisen Sie auf das angegebene Programm.
öffentliche Klasse ThisDemo{
public static void main(String args){
A obj=new A(5);
}
}
Klasse A{
public A(){
System.out.println(“Konstruktor A”);
}
public A(int x){
dies();
System.out.println(“Parametrisierter Konstruktor A”);
}
}
Gemäß obigem Programm hat Klasse A einen Default-Konstruktor und einen parametrisierten Konstruktor. Beim Erstellen eines Objekts von A wird der parametrisierte Konstruktor aufgerufen. Im parametrisierten Konstruktor gibt es eine Anweisung wie diese(); Es ruft den aktuellen Klassenkonstruktor auf, der A() ist.
Was ist super in Java?
Das Schlüsselwort „super“steht im Zusammenhang mit Vererbung. Vererbung ist ein Hauptkonzept der objektorientierten Programmierung. Es ermöglicht die Verwendung der Eigenschaften und Methoden der bereits vorhandenen Klasse für eine neue Klasse. Die bereits vorhandene Klasse wird als Elternklasse oder Oberklasse bezeichnet. Die neue Klasse wird als untergeordnete Klasse oder Unterklasse bezeichnet.
Das ‚super‘ist eine Referenzvariable, die verwendet wird, um auf das unmittelbar übergeordnete Klassenobjekt zu verweisen. Das Schlüsselwort super kann auf eine Instanzvariable der unmittelbaren Elternklasse verweisen oder eine Methode der unmittelbaren Elternklasse aufrufen. super() wird verwendet, um den Konstruktor der unmittelbar übergeordneten Klasse aufzurufen.
Angenommen, es gibt zwei Klassen als A und B. Klasse A ist die Oberklasse und Klasse B ist die Unterklasse. Klasse A, B haben beide eine Anzeigemethode.
öffentliche Klasse A{
public void display(){
System.out.println(“A”);
}
}
öffentliche Klasse B erweitert A{
public void display(){
System.out.println(“B”);
}
}
Wenn ein Objekt vom Typ B erstellt und die Methode display aufgerufen wird, wird die Ausgabe B ausgegeben. Klasse A hat die Anzeigemethode, aber sie wird von der Anzeigemethode der Unterklasse B überschrieben. Wenn der Programmierer die Anzeigemethode in Klasse A aufrufen möchte, kann er das Schlüsselwort super verwenden. Verweisen Sie auf das angegebene Java-Programm.
Abbildung 02: Java-Programm mit super Schlüsselwort
Gemäß dem obigen Programm hat Klasse A eine Variable namens Zahl mit dem Wert 10. Klasse B erweitert A und hat eine Variable namens Zahl mit dem Wert 20. Im Allgemeinen, wenn ein Objekt vom Typ B erstellt und die Anzeigemethode aufgerufen wird sollte die Nummer in der Unterklasse angeben, da der Wert der Oberklasse von der neuen Klasse überschrieben wird. Durch die Verwendung von super.num wird der Zahlenwert der Oberklasse ausgegeben.
Mit super() kann der Konstruktor der Superklasse aufgerufen werden. Siehe untenstehendes Programm.
öffentliche Klasse Haupt {
public static void main(String args){
B obj=new B();
}
}
Klasse A{
A(){
System.out.println(“A”);
}
}
Klasse B erweitert A{
B(){
super();
System.out.println(“B”);
}
}
Gemäß obigem Programm hat die Klasse A einen Konstruktor A(). Klasse B hat den Konstruktor B(). Klasse B erweitert Klasse A. Beim Erstellen eines Objekts vom Typ B wird A, B als Ausgabe ausgegeben. Der B()-Konstruktor hat super(). Daher wird zuerst der A-Konstruktor aufgerufen und geht dann zu B. Auch wenn super() nicht geschrieben ist, wird standardmäßig der übergeordnete Konstruktor aufgerufen.
Der Super mit der Methode ist wie folgt.
Abbildung 03: Java-Programm, das die Methode der Superklasse aufruft
Gemäß obigem Programm hat Klasse A eine Anzeigemethode. Klasse B hat auch eine Anzeigemethode. Klasse B erweitert A. Wenn ein Objekt vom Typ B erstellt und die Anzeigemethode aufgerufen wird, wird die Ausgabe als A und B ausgegeben. In der Anzeigemethode der Klasse B wird die Anzeigemethode der Klasse A mit super.display() aufgerufen. Diese Methode gibt zuerst „A“aus. Druckt dann „B“.
Was ist die Ähnlichkeit zwischen this und super?
Beides sind Schlüsselwörter in der Java-Programmierung
Was ist der Unterschied zwischen this und super?
Das gegen Super |
|
Das ‚this‘ist eine Referenzvariable, die verwendet wird, um auf das aktuelle Objekt zu verweisen. | Das ‚super‘ist eine Referenzvariable, die verwendet wird, um auf ein unmittelbares Oberklassenobjekt zu verweisen. |
Instanzvariable | |
Hiermit kann auf eine aktuelle Klasseninstanzvariable verwiesen werden. | Superclass-Instanzvariable kann mit super. referenziert werden |
Klassenmethode | |
Hiermit kann die aktuelle Klassenmethode aufgerufen werden. | Superclass-Methode kann mit super aufgerufen werden. |
Konstruktor | |
Der aktuelle Klassenkonstruktor kann mit this() aufgerufen werden. | Superclass-Konstruktor kann mit super() aufgerufen werden. |
Zusammenfassung – das vs. super in Java
Die Schlüsselwörter ‚this‘und ‚super‘werden in Java verwendet. Die Schlüsselwörter können nicht als Variablen oder andere Bezeichnernamen verwendet werden. Sie scheinen gleich zu sein, aber sie haben einen Unterschied. Der Unterschied zwischen this und super besteht darin, dass super eine Referenzvariable ist, die verwendet wird, um auf ein unmittelbares Oberklassenobjekt zu verweisen, während dies eine Referenzvariable ist, die auf das aktuelle Objekt verweist.
Laden Sie das PDF von this vs super in Java herunter
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter: Unterschied zwischen diesem und super in Java