Unterschied zwischen diesem und super in Java

Hauptunterschied - 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 Object Oriented Programming (OOP). Das Programm oder die Software kann anhand von Objekten modelliert werden. Objekte sind mit Klassen unersättlich. Eine Säule der OOP ist das Erbe. Es bietet Wiederverwendbarkeit von Code. Die bereits vorhandenen Klassen sind Superklassen und die abgeleiteten Klassen sind Unterklassen. Das Schlüsselwort super kann verwendet werden, um ein Objekt der Superklasse zu referenzieren. Es gibt mehrere Objekte im System. Das Schlüsselwort 'this' wird verwendet, um auf ein aktuelles Objekt zu verweisen. Das Hauptunterschied zwischen diesem und super ist 'Dies ist eine Referenzvariable, die verwendet wird, um auf das aktuelle Objekt zu verweisen 'super' ist eine Referenzvariable, die verwendet wird, um ein Objekt der unmittelbaren Superklasse zu referenzieren. 

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist das in Java?
3. Was ist super in Java?
4. Ähnlichkeiten Zwischen diesem und Super in Java
5. Side-by-Side-Vergleich - dies in Java in Tabellenform
6. Zusammenfassung

Was ist das in Java??

Das Schlüsselwort 'this' wird verwendet, um auf ein aktuelles Objekt zu verweisen. Verweisen Sie das angegebene Java-Programm.

Abbildung 01: Java-Programm, das dieses Schlüsselwort verwendet

In Java gibt es drei Arten von Variablen. Sie sind Instanzvariablen, lokale Variablen und Klassenvariablen. Gemäß dem obigen Programm verfügt die Klasse Employee über zwei Instanzvariablen. Sie sind ID und Name. Lokale Variablen sind die zu Methoden gehörenden Variablen. Klassenvariablen werden von allen Objekten gemeinsam genutzt. Die ID und der Name werden an den Employee-Konstruktor übergeben. Wenn der Programmierer id = id schreibt; Die Instanzvariablen werden nicht initialisiert, da der Konstruktor bereits eine ID und einen Namen hat. Es gibt keine Werte für Instanzvariablen. Beim Drucken wird also Null angezeigt. Wenn Sie dies verwenden, bezieht es sich auf das aktuelle Objekt. Wenn Sie dem Konstruktor eine id und einen Namen geben, können Sie die Instanzvariablen festlegen.

Das Schlüsselwort 'this' kann verwendet werden, um die aktuelle Klassenmethode aufzurufen. Siehe das angegebene Java-Programm.

öffentliche Klasse ThisDemo

public static void main (String [] args)

Myclass myClass = new Myclass ();

myClass.B ();

Klasse Myclass

öffentlich ungültig A ()

System.out.println ("A");

öffentlich ungültig B ()

System.out.prinltn ("B");

Dies ein();

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, werden B, A als Ausgabe gedruckt. In Methode B gibt es nach dem Drucken von B eine Anweisung wie folgt: A. (). Damit wurde die aktuelle Klassenmethode aufgerufen.

Mit diesem Schlüsselwort kann auch der aktuelle Klassenkonstruktor aufgerufen werden. Verweisen Sie das angegebene Programm.

öffentliche Klasse ThisDemo

public static void main (String [] args)

Ein obj = neues A (5);

Klasse a

public A ()

System.out.println ("Konstruktor A");

public A (int x)

diese();

System.out.println ("Parametrisierter Konstruktor A");

Gemäß dem obigen Programm hat Klasse A einen Standardkonstruktor 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 wird den aktuellen Klassenkonstruktor A () aufrufen..

Was ist super in Java??

Das Schlüsselwort 'super' bezieht sich auf die 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 übergeordnete Klasse oder Superklasse bezeichnet. Die neue Klasse wird als untergeordnete Klasse oder Unterklasse bezeichnet.

'Super' ist eine Referenzvariable, die verwendet wird, um auf das unmittelbar übergeordnete Klassenobjekt zu verweisen. Das Schlüsselwort super kann auf die Instanzvariable der übergeordneten Klassenklasse verweisen oder die Methode der übergeordneten Klassenmethode sofort aufrufen. Super () wird verwendet, um den unmittelbaren Konstruktor der ü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 Anzeigemethode.

öffentliche Klasse A

Anzeige für öffentliche Void ()

System.out.println ("A");

öffentliche Klasse B erweitert A

Anzeige für öffentliche Void ()

System.out.println ("B");

Wenn Sie ein Objekt vom Typ B erstellen und die Methodenanzeige aufrufen, wird die Ausgabe B ausgegeben. Klasse A hat die Anzeigemethode, wird jedoch 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 das angegebene Java-Programm.

Abbildung 02: Java-Programm, das das Super-Schlüsselwort verwendet

Gemäß dem obigen Programm hat die Klasse A eine Variable mit der Bezeichnung number mit dem Wert 10. Klasse B erweitert sich um A und hat eine Variable mit der Bezeichnung number mit dem Wert 20. Im Allgemeinen sollte beim Erstellen eines Objekts vom Typ B und beim Aufrufen der Anzeigemethode die Nummer in angegeben werden die Unterklasse, da der Superklassenwert von der neuen Klasse überschrieben wird. Bei Verwendung von super.num wird der Wert der Oberklassennummer gedruckt.

Mit super () kann der Superklassenkonstruktor aufgerufen werden. Siehe das untenstehende Programm.

öffentliche Klasse Main

public static void main (String [] args)

B obj = neues B ();

Klasse a

EIN()

System.out.println ("A");

Klasse B erweitert A

B ()

Super();

System.out.println ("B");

Gemäß dem obigen Programm hat Klasse A einen Konstruktor A (). Klasse B hat den Konstruktor B (). Klasse B erweitert Klasse A. Beim Erstellen eines Objekts vom Typ B werden A, B als Ausgabe gedruckt. Der B () -Konstruktor hat super (). Daher wird zuerst der A-Konstruktor aufgerufen und geht dann zu B. Obwohl super () nicht geschrieben wird, wird der übergeordnete Konstruktor standardmäßig aufgerufen.

Das Super, das die Methode verwendet, ist wie folgt.

Abbildung 03: Java-Programm, das die Superklassenmethode aufruft

Gemäß dem obigen Programm hat die Klasse A eine Anzeigemethode. Klasse B hat auch eine Anzeigemethode. Klasse B wird um A erweitert. Beim Erstellen eines Objekts vom Typ B und dem Aufruf der Anzeigemethode wird die Ausgabe als A und B ausgegeben. Bei der Anzeigemethode der Klasse B wird die Anzeigemethode der Klasse A mit super.display () aufgerufen. Bei dieser Methode wird zuerst "A" gedruckt. Druckt dann "B".

Was ist die Ähnlichkeit zwischen diesem und super?

  • Beides sind Schlüsselwörter in der Java-Programmierung.

Was ist der Unterschied zwischen diesem und super?

Dies gegen Super

Das 'this' ist eine Referenzvariable, die verwendet wird, um auf das aktuelle Objekt zu verweisen. 'Super' ist eine Referenzvariable, die verwendet wird, um ein unmittelbares Superklassenobjekt zu referenzieren.
 Instanzvariable
Eine aktuelle Klasseninstanzvariable kann damit referenziert werden. Superclass-Instanzvariable kann mit super referenziert werden.
Klassenmethode
Die aktuelle Klassenmethode kann damit aufgerufen werden. Superklasse-Methode kann mit super aufgerufen werden.
 Konstrukteur
Der aktuelle Klassenkonstruktor kann mit this () aufgerufen werden.. Superklassenkonstruktor 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 unterscheiden sich. Der Unterschied zwischen diesem und super ist, dass super eine Referenzvariable ist, die zum Verweisen auf ein Objekt der unmittelbaren Superklasse verwendet wird, während dies eine Referenzvariable ist, die auf das aktuelle Objekt verweist.

Laden Sie das PDF dieses Spiels in Java herunter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß dem Zitiervermerk für Offline-Zwecke verwenden. Laden Sie sich hier die PDF-Version herunter: Unterschied zwischen diesem und Super in Java

Referenz:

1.Dieses () und super Schlüsselwort in Java und sein Zweck mit einem kurzen Beispiel, Atoz Wissen, 31. Januar 2015. Hier verfügbar 
2. "Dieses Schlüsselwort in Java - Java-Punkt." Hier verfügbar  
3.Tutorialspoint.com. "Java-Vererbung". Die Stelle, Hier verfügbar