logo

Razlika med tem in super v Javi

The 'ta' in ' super' ključne besede so rezervirane besede, ki se uporabljajo v drugačnem kontekstu. Poleg tega Java ponuja tudi to () in super() konstruktorji, ki se uporabljajo v kontekstu konstruktorja. V tem razdelku bomo razpravljali o razlike med to in super ključno besedo in konstruktorja this() in super(), v Javi.

ključna beseda super in konstruktor super().

super ključna beseda

Rezervirana ključna beseda, ki se uporablja za klic metode ali spremenljivke osnovnega razreda, je znana kot a super ključna beseda. Ne moremo uporabiti super ključna beseda kot identifikator . Ključna beseda super se ne uporablja samo za sklicevanje na instanco osnovnega razreda, ampak tudi za statične člane.

opombe v spomladanskem zagonu

super() Konstruktor

The super() se večinoma uporablja za priklic članskih funkcij osnovnega razreda in konstruktorjev.

Vzemimo primer obeh super ključno besedo in super() razumeti, kako delujejo.

SuperExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create Animal class which is base class of Animal class Animal{ // data member of Animal class String color = 'white'; } // create child class of Animal class Cat extends Animal{ //default constructor Cat() { // data members of the Cat class String color = 'Brown'; System.out.println('The cat is of color '+super.color); // calling parent class data member System.out.println('The cat is of color '+color); } } // create child class for Car class SuperExample1 extendsCat { // default constructor SuperExample1() { // calling base class constructor super(); System.out.println('The eyes of the cat is blue.'); } // main() method start publicstaticvoid main(String[] args) { // call default constructor of the SuperExample1 new SuperExample1(); System.out.println('Inside Main'); } } 

Izhod:

binarno drevo v Javi
to proti super v Javi

V metodi main() smo dali izjavo nov SuperExample1() . Pokliče konstruktorja Superprimer1 razred.

Znotraj konstruktorja smo dali izjavo super() ki kliče konstruktor svojega nadrejenega razreda, tj. Mačka. V konstruktorju smo podali tri izjave:

  1. Inicializiraj barvo z vrednostjo 'Rjav'.
  2. Natisni podatkovnega člana nadrejenega razreda.
  3. Natisni trenutnega podatkovnega člana razreda.

Ko se izvede drugi stavek, tok programa skoči v razred Animal za dostop do vrednosti njegovih podatkovnih članov. Po dostopu do njega se tok vrne v Mačka konstruktor razreda in ga natisne. Po tem se zadnji stavek izvede in natisne vrednost spremenljivk trenutnega razreda.

selenium tutorial java

Po izvedbi zadnjega stavka v Mačka razreda se tok vrne k konstruktorju razreda Superprimer1 in izvede preostale stavke.

Po končani izvedbi Superprimer1() , se tok vrne k metodi main() in izvede preostale stavke.

Opomba: če želimo uporabiti super(), se moramo prepričati, da mora biti prvi stavek v konstruktorju razreda. Lahko ga uporabimo samo za sklicevanje na konstruktor nadrejenega razreda.

ta ključna beseda in konstruktor this().

to ključno besedo

To je rezervirana ključna beseda v Javi, ki se uporablja za sklicevanje na trenutni objekt razreda. Je referenčna spremenljivka, prek katere se kliče metoda. Druge uporabe te ključne besede so:

  • Uporabimo ga lahko za sklicevanje na spremenljivko primerka trenutnega razreda.
  • Uporabimo ga lahko za priklic trenutne metode razreda (implicitno).
  • Lahko ga posredujemo kot argument v klicih metode in konstruktorja.
  • Uporabimo ga lahko tudi za vrnitev trenutnega primerka razreda iz metode.

this() Konstruktor

Konstruktor se uporablja za klic enega konstruktorja iz drugega istega razreda. Vzemimo primer obeh to ključno besedo in to () razumeti, kako delujejo.

rojen freddie mercury

ThisExample1.java

 // import required classes and packages package javaTpoint.MicrosoftJava; // create ThisExample1 class to understand the working of this() and this class ThisExample1 { // initialize instance and static variable int x = 5; staticinty = 10; // default constructor of class ThisExample1 ThisExample1() { // invoking current class constructor this(5); System.out.println('We are insie of the default constructor.'); System.out.println('The value of x = '+x); } ThisExample1(int x) { this.x = x; // override value of the current class instance variable System.out.println('We are inside of the parameterized constructor.'); System.out.println('The value of y = '+y); } publicstaticvoid main(String[] args) { // invoking constructor of the current class new ThisExample1(); System.out.println('Inside Main'); } } 

Izhod:

to proti super v Javi

Razlika med to in super ključno besedo

Naslednja tabela opisuje ključno razliko med tem in super:

to super
Trenutni primerek razreda je predstavljen s to ključno besedo. Trenutni primerek nadrejenega razreda je predstavljen s ključno besedo super.
Za klic privzetega konstruktorja trenutnega razreda lahko uporabimo to ključno besedo. Za klic privzetega konstruktorja nadrejenega razreda lahko uporabimo ključno besedo super.
Nanj se lahko sklicujemo iz statičnega konteksta. To pomeni, da ga je mogoče priklicati iz statičnega konteksta. Nanj se ni mogoče sklicevati iz statičnega konteksta. To pomeni, da ga ni mogoče priklicati iz statičnega konteksta.
Z njim lahko dostopamo le do trenutnih članov podatkov razreda in funkcij članov. Uporabimo ga lahko za dostop do podatkovnih članov in članskih funkcij nadrejenega razreda.

Razlika med konstruktorjem this() in super().

to () super()
Konstruktor this() se nanaša na trenutni predmet razreda. Konstruktor super() se nanaša na neposredni nadrejeni objekt razreda.
Uporablja se za priklic metode trenutnega razreda. Uporablja se za priklic metod nadrejenega razreda.
Uporablja se lahko kjer koli v parametriziranem konstruktorju. Vedno je prva vrstica v konstruktorju podrejenega razreda.
Uporablja se za priklic nadrazredne različice preglasene metode. Uporablja se za priklic nadrazredne različice preglasene metode.