logo

Skirtumas tarp šio ir super Java

The 'tai' ir ' super' raktiniai žodžiai yra rezervuoti žodžiai, naudojami kitame kontekste. Be to, „Java“ taip pat teikia tai () ir super () konstruktoriai, kurie naudojami konstruktoriaus kontekste. Šiame skyriuje aptarsime skirtumai tarp šio ir super raktinio žodžio ir šis() ir super() konstruktorius, Java kalboje.

super raktinis žodis ir super() konstruktorius

super raktinis žodis

Rezervuotas raktinis žodis, naudojamas bazinės klasės metodui arba kintamajam iškviesti, yra žinomas kaip a super raktažodį. Negalime naudoti super raktinis žodis kaip an identifikatorius . Super raktinis žodis naudojamas ne tik nurodyti bazinės klasės egzempliorių, bet ir statinius narius.

super() konstruktorius

The super () daugiausia naudojamas bazinės klasės narių funkcijoms ir konstruktoriams iškviesti.

Paimkime abiejų pavyzdį super raktažodis ir super () suprasti, kaip jie veikia.

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'); } } 

Išvestis:

tai prieš super Java

Naudodami pagrindinį() metodą, mes padarėme pareiškimą naujas SuperExample1() . Jis vadina konstruktorių SuperPavyzdys1 klasė.

Konstruktoriaus viduje mes padarėme pareiškimą super () kuri iškviečia savo pirminės klasės konstruktorių, t.y. Katė. Konstruktoriumi mes padarėme tris teiginius:

  1. Inicijuoti spalvą su verte 'Ruda'.
  2. Spausdinti tėvų klasės duomenų narį.
  3. Spausdinti esamą klasės duomenų narį.

Kai vykdomas antrasis sakinys, programos srautas pereina į Animal klasę, kad pasiektų jos duomenų narių vertę. Pasiekus jį, srautas grįžta į Katė klasės konstruktorių ir jį atspausdina. Po to paskutinis sakinys vykdo ir išspausdina esamos klasės kintamųjų reikšmę.

Įvykdžius paskutinį pareiškimą Katė klasė, srautas grįžta pas klasės konstruktorių SuperPavyzdys1 ir vykdo likusius pareiškimus.

Baigę vykdyti SuperExample1() , srautas grįžta į main() metodą ir vykdo likusius sakinius.

Pastaba: norėdami naudoti super(), turime įsitikinti, kad tai turėtų būti pirmasis teiginys klasės konstruktoriuje. Jį galime naudoti norėdami nurodyti tik pirminės klasės konstruktorių.

šis raktinis žodis ir šis() konstruktorius

šį raktinį žodį

Tai rezervuotas „Java“ raktinis žodis, naudojamas dabartiniam klasės objektui nurodyti. Tai yra atskaitos kintamasis, per kurį iškviečiamas metodas. Kiti šio raktinio žodžio naudojimo būdai yra:

java dviguba eilutė
  • Galime jį naudoti norėdami nurodyti esamą klasės egzemplioriaus kintamąjį.
  • Galime jį naudoti norėdami iškviesti dabartinės klasės metodą (netiesiogiai).
  • Mes galime perduoti jį kaip argumentą metodo ir konstruktoriaus iškvietime.
  • Taip pat galime jį naudoti norėdami grąžinti dabartinį klasės egzempliorių iš metodo.

šis() konstruktorius

Konstruktorius naudojamas iškviesti vieną konstruktorių iš kito tos pačios klasės. Paimkime abiejų pavyzdį tai raktažodis ir tai () suprasti, kaip jie veikia.

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'); } } 

Išvestis:

tai prieš super Java

Skirtumas tarp šio ir super raktinio žodžio

Šioje lentelėje aprašomas pagrindinis skirtumas tarp šio ir super:

tai super
Dabartinis klasės egzempliorius vaizduojamas šiuo raktiniu žodžiu. Dabartinis pirminės klasės egzempliorius vaizduojamas super raktiniu žodžiu.
Norėdami iškviesti numatytąjį dabartinės klasės konstruktorių, galime naudoti šį raktinį žodį. Norėdami iškviesti numatytąjį pirminės klasės konstruktorių, galime naudoti super raktinį žodį.
Ją galima nurodyti iš statinio konteksto. Tai reiškia, kad jį galima iškviesti iš statinio konteksto. Jo negalima nurodyti iš statinio konteksto. Tai reiškia, kad jo negalima iškviesti iš statinio konteksto.
Jį galime naudoti norėdami pasiekti tik dabartinius klasės duomenų narius ir narių funkcijas. Galime jį naudoti norėdami pasiekti pirminės klasės duomenų narius ir narių funkcijas.

Skirtumas tarp šio() ir super() konstruktoriaus

tai () super ()
Konstruktorius this() nurodo esamą klasės objektą. Super() konstruktorius nurodo tiesioginį pirminės klasės objektą.
Jis naudojamas dabartinės klasės metodui iškviesti. Jis naudojamas pirminės klasės metodams iškviesti.
Jis gali būti naudojamas bet kurioje parametruoto konstruktoriaus vietoje. Tai visada yra pirmoji vaikų klasės konstruktoriaus eilutė.
Jis naudojamas nepaisyto metodo super-klasės versijai iškviesti. Jis naudojamas nepaisyto metodo super-klasės versijai iškviesti.