Skillnad mellan detta och super i Java

Huvudskillnad - detta vs super i Java
 

Nyckelorden "this" och "super" används i Java-programmering. Dessa nyckelord kan inte användas som variabler eller något annat identifieringsnamn. Java stöder objektorienterad programmering (OOP). Programmet eller programvaran kan modelleras med hjälp av objekt. Objekt är otåliga med klasser. En pelare av OOP är arv. Det ger kodåteranvändning. De klasser som redan finns är superklasser, och de härledda klasserna är underklasser. Det suveräna sökordet kan användas för att hänvisa ett objekt till superklassen. Det finns flera objekt i systemet. Det här "sökordet" används för att referera till ett aktuellt objekt. De nyckelskillnad mellan detta och super är "detta 'är en referensvariabel som används för att referera till det aktuella objektet medan "super" är en referensvariabel som används för att referera till omedelbar superklassobjekt. 

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är det här i Java
3. Vad är super i Java
4. Likheter mellan detta och super i Java
5. Side vid sida Jämförelse - detta vs super i Java i tabellform
6. Sammanfattning

Vad är det här i Java?

Sökordet "this" används för att referera till ett aktuellt objekt. Se det angivna Java-programmet.

Figur 01: Java-program som använder det här sökordet

I Java finns tre typer av variabler. De är instansvariabler, lokala variabler och klassvariabler. Enligt ovanstående program har klassmedarbetaren två instansvariabler. De är id och namn. Lokala variabler är variablerna tillhör metoder. Klassvariabler delas av alla objekt. ID och namn skickas till anställningskonstruktören. Om programmeraren skriver id = id; det kommer inte att initiera instansvariablerna eftersom konstruktören redan har id och namn. Det finns inga värden till exempel variabler. Så, att skriva ut dem kommer att visa null. När man använder det refererar det till det aktuella objektet. Därför kan man ge id och namn till konstruktören instansvariablerna.

Sökordet "this" kan användas för att anropa den aktuella klassmetoden. Se det angivna Java-programmet.

offentlig klass ThisDemo

statisk statisk tomt huvud (String [] args)

Myclass myClass = ny Myclass ();

myClass.B ();

klass Myclass

offentligt ogiltigt A ()

System.out.println ( ”A”);

offentligt ogiltigt B ()

System.out.prinltn ( ”B”);

this.A ();

Klassen Myclass innehåller två metoder. De är metod A och B. När du skapar ett objekt av Myclass och påbereder metoden B kommer B, A att skrivas ut som utgången. I metod B är det efter utskrift B ett uttalande som detta.A (). Med detta användes den aktuella klassmetoden.

Det är också möjligt att använda detta nyckelord för att åberopa den nuvarande klasskonstruktören. Se det angivna programmet.

offentlig klass ThisDemo

statisk statisk tomt huvud (String [] args)

A obj = nytt A (5);

klass A

offentliga A ()

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

offentliga A (int x)

detta();

System.out.println ("Parameterized Constructor A");

Enligt ovanstående program har klass A en standardkonstruktor och en parametrerad konstruktör. När man skapar ett objekt av A kallas den parametrerade konstruktorn. I den parametrerade konstruktören finns ett uttalande som detta (); Det kommer att ringa den nuvarande klasskonstruktorn som är A ().

Vad är super i Java?

Sökordet "super" är relaterat till arv. Erfarenhet är ett viktigt begrepp för objektorienterad programmering. Den tillåter att använda redan befintliga klassers egenskaper och metoder till en ny klass. Den redan existerande klassen kallas förälderklassen eller superklassen. Den nya klassen är känd som barnklass eller underklass.

"Super" är en referensvariabel som används för att referera objektet för omedelbar föräldraklass. Det överordnade sökordet kan referera till omedelbar föräldraklass förekomstvariabel eller anropa omedelbar föräldraklassmetod. Super () används för att anropa omedelbar förälderklasskonstruktor.

Antag att det finns två klasser som A och B. Klass A är superklassen och klass B är underklassen. Klass A, B har båda visningsmetoden.

offentlig klass A

public void display ()

System.out.println ( ”A”);

offentlig klass B utökar A

public void display ()

System.out.println ( ”B”);

När du skapar ett föremål av typ B och ringer metoden visar den utmatningen B. Klass A har visningsmetoden, men den överrulleras av underklass B-visningsmetoden. Om programmeraren vill ringa visningsmetoden i klass A kan han använda superordet. Se det angivna Java-programmet.

Figur 02: Java-program med superord

I enlighet med ovanstående program har klass A ett variabelt namnet tal med värde 10. Klass B sträcker A och har ett variabelt namnet tal med värde 20. Generellt, när man skapar ett objekt av typ B och ringer ska visningsmetoden ge numret i underklassen eftersom superklassvärdet är överrullat av den nya klassen. Genom att använda super.num skrivs superklassnummervärdet.

Super () kan användas för att ringa superklasskonstruktorn. Se nedan programmet.

offentlig klass Main

statisk statisk tomt huvud (String [] args)

B obj = ny B ();

klass A

EN()

System.out.println ( ”A”);

klass B sträcker sig A

B ()

super();

System.out.println ( ”B”);

Enligt ovanstående program har klass A en konstruktor A (). Klass B har konstruktorn B (). Klass B utökar klass A. När man skapar ett objekt av typ B, kommer det att skriva ut A, B som utgången. B () konstruktören har super (). Därför kallas först A-konstruktören och går sedan till B. Även om super () inte är skrivet kallas förälderkonstruktorn som standard.

Den super som använder metoden är som följer.

Figur 03: Java-program som påkallar superklassmetoden

Enligt ovanstående program har klass A visat metod. Klass B har också visningsmetod. Klass B sträcker A. När man skapar ett föremål av typ B och ringer visar visningsmetoden utgången som A och B. I visningsmetod för klass B kallas klass A-visningsmetod med hjälp av super.display (). Den metoden skriver ut "A" först. Sedan skrivs "B".

Vad är likheten mellan detta och super?

  • Båda är nyckelord i Java-programmering.

Vad är skillnaden mellan detta och super?

Detta vs Super

"This" är en referensvariabel som används för att referera till det aktuella objektet. "Super" är en referensvariabel som används för att referera till ett omedelbart superklassobjekt.
 Instansvariabel
En nuvarande klassinstansvariabel kan hänvisas med detta. Superclass instansvariabel kan hänvisas med super.
Klassmetod
Den aktuella klassmetoden kan åberopas med hjälp av detta. Superclass metod kan åberopas med hjälp av super.
 Konstruktör
Nuvarande klasskonstruktor kan åberopas med hjälp av denna (). Superclass-konstruktören kan åberopas med hjälp av super ().

Sammanfattning - detta vs super i Java

Nyckelorden "this" och "super" används i Java. Nyckelorden kan inte användas som variabler eller något annat identifieringsnamn. De verkar vara samma, men de har en skillnad. Skillnaden mellan detta och super är att super är en referensvariabel som används för att hänvisa omedelbart superklassobjekt medan detta är en referensvariabel som refererar till det aktuella objektet.

Ladda ner PDF-filen till denna vs super i Java

Du kan hämta PDF-versionen av den här artikeln och använda den för offlineändamål enligt citationsnotat. Vänligen ladda ner PDF-versionen här: Skillnad mellan detta och super i Java

Referens:

1.Detta () och superord i java och dess syfte med ett kort exempel, Atoz kunskap, 31 jan 2015. Tillgänglig här 
2. "Detta sökord i java - java punkt." Tillgänglig här  
3.tutorialspoint.com. "Java arv." Punkten, Tillgänglig här