The ključna beseda super v Javi je referenčna spremenljivka, ki se uporablja za sklicevanje na nadrejeni razred, ko delamo s predmeti. Morate poznati osnove Dedovanje in Polimorfizem razumeti ključno besedo Java super.
Ključna beseda super prišel na podobo s konceptom dedovanja. V tem članku bomo obravnavali vse o super v Javi, vključno z definicijami, primeri, uporabami, sintakso in še več.
Kazalo
- Značilnosti Super Keyword v Javi
- Uporaba ključne besede super v Javi
- 1. Uporaba super s spremenljivkami
- 2. Uporaba super z metodami
- 3. Uporaba super s konstruktorji
- Prednosti uporabe ključne besede Java Super
Značilnosti Super Keyword v Javi
V Javi se ključna beseda super uporablja za sklicevanje na nadrejeni razred podrazreda. Tukaj je nekaj njegovih ključnih značilnosti:
- super se uporablja za klic konstruktorja nadrazreda: Ko je podrazred ustvarjen, mora njegov konstruktor poklicati konstruktorja svojega nadrejenega razreda. To se naredi s ključno besedo super(), ki pokliče konstruktorja nadrejenega razreda.
- super se uporablja za klicanje metode nadrazreda: Podrazred lahko pokliče metodo, definirano v svojem nadrejenem razredu s ključno besedo super. To je uporabno, ko želi podrazred poleg svoje lastne priklicati implementacijo metode nadrejenega razreda.
- super se uporablja za dostop do polja nadrazreda: Podrazred lahko dostopa do polja, definiranega v njegovem nadrejenem razredu s ključno besedo super. To je uporabno, ko se podrazred želi sklicevati na različico polja nadrejenega razreda.
- super mora biti prvi stavek v konstruktorju: Pri klicu konstruktorja nadrazreda mora biti stavek super() prvi stavek v konstruktorju podrazreda.
- super ni mogoče uporabiti v statičnem kontekstu: Ključne besede super ni mogoče uporabiti v statičnem kontekstu, na primer v statični metodi ali inicializatorju statične spremenljivke.
- super ni potreben za klic metode nadrazreda: Čeprav je mogoče uporabiti ključno besedo super za klic metode v nadrejenem razredu, ni obvezna. Če metoda v podrazredu ni preglasena, bo njen klic brez ključne besede super priklical izvedbo nadrejenega razreda.
Na splošno je super ključna beseda je zmogljivo orodje za podrazrede v Javi, ki omogoča podrazredom, da podedujejo in gradijo na funkcionalnosti svojih nadrejenih razredov.
Uporaba ključne besede super v Javi
Večinoma se uporablja v naslednjih kontekstih, kot je navedeno spodaj:
- Uporaba super s spremenljivkami
- Uporaba super z metodami
- Uporaba super s konstruktorji
1. Uporaba super s spremenljivkami
Ta scenarij se zgodi, ko imata izpeljani razred in osnovni razred iste podatkovne člane. V tem primeru obstaja možnost dvoumnosti JVM .
To lahko bolj jasno razumemo z naslednjim primerom:
Primer
Java
// super keyword in java example> > // Base class vehicle> class> Vehicle {> >int> maxSpeed =>120>;> }> > // sub class Car extending vehicle> class> Car>extends> Vehicle {> >int> maxSpeed =>180>;> > >void> display()> >{> >// print maxSpeed of base class (vehicle)> >System.out.println(>'Maximum Speed: '> >+>super>.maxSpeed);> >}> }> > // Driver Program> class> Test {> >public> static> void> main(String[] args)> >{> >Car small =>new> Car();> >small.display();> >}> }> |
>
>Izhod
Maximum Speed: 120>
V zgornjem primeru imata osnovni razred in podrazred člana maxSpeed. Do maxSpeed osnovnega razreda v podrazredu lahko dostopamo s ključno besedo super.
2. Uporaba super z metodami
To se uporablja, ko želimo poklicati nadrejeni razred metoda . Kadar imata torej nadrejeni in podrejeni razred enako imenovani metodi, za razrešitev dvoumnosti uporabimo ključno besedo super.
Ta delček kode pomaga razumeti omenjeno uporabo ključne besede super.
Primer
Java
// super keyword in java example> > // superclass Person> class> Person {> >void> message()> >{> >System.out.println(>'This is person class
'>);> >}> }> // Subclass Student> class> Student>extends> Person {> >void> message()> >{> >System.out.println(>'This is student class'>);> >}> >// Note that display() is> >// only in Student class> >void> display()> >{> >// will invoke or call current> >// class message() method> >message();> > >// will invoke or call parent> >// class message() method> >super>.message();> >}> }> // Driver Program> class> Test {> >public> static> void> main(String args[])> >{> >Student s =>new> Student();> > >// calling display() of Student> >s.display();> >}> }> |
>
>Izhod
This is student class This is person class>
V zgornjem primeru smo videli, da če pokličemo samo metodo sporočilo() nato se prikliče trenutni razred message(), vendar z uporabo ključne besede super, sporočilo() nadrazreda bi lahko priklicali tudi.
3. Uporaba super s konstruktorji
Ključno besedo super lahko uporabite tudi za dostop do konstruktorja nadrejenega razreda. Še ena pomembna stvar je, da lahko 'super' kliče tako parametrične kot tudi neparametrične konstruktorje, odvisno od situacije.
Sledi delček kode za razlago zgornjega koncepta:
Primer 1
Java
kako odpreti datoteko z javo
// Java Code to show use of> // super keyword with constructor> > // superclass Person> class> Person {> >Person()> >{> >System.out.println(>'Person class Constructor'>);> >}> }> > // subclass Student extending the Person class> class> Student>extends> Person {> >Student()> >{> >// invoke or call parent class constructor> >super>();> > >System.out.println(>'Student class Constructor'>);> >}> }> > // Driver Program> class> Test {> >public> static> void> main(String[] args)> >{> >Student s =>new> Student();> >}> }> |
>
>Izhod
Person class Constructor Student class Constructor>
V zgornjem primeru smo poklicali konstruktor nadrazreda s ključno besedo 'super' prek konstruktorja podrazreda.
Primer 2
Java
class> ParentClass {> >public> boolean> isTrue() {>return> true>; }> }> > class> ChildClass>extends> ParentClass {> >public> boolean> isTrue()> >{> >// calls parent implementation of isTrue()> >boolean> parentResult =>super>.isTrue();> >// negates the parent result> >return> !parentResult;> >}> }> > public> class> Main {> >public> static> void> main(String[] args)> >{> >ChildClass child =>new> ChildClass();> >// calls child implementation> >// of isTrue()> >boolean> result = child.isTrue();> > >// prints 'false'> >System.out.println(result);> >}> }> |
>
>Izhod
false>
Prednosti uporabe ključne besede Java Super
The ključna beseda super v Javi ponuja številne prednosti v objektno usmerjenem programiranju, ki so naslednje:
- Omogoča ponovno uporabo kode : Uporaba ključne besede super omogoča podrazredom, da podedujejo funkcionalnost svojih nadrejenih razredov, kar spodbuja ponovno uporabo kode in zmanjšuje podvajanje.
- Podpira polimorfizem : Ker lahko podrazredi preglasijo metode in dostopajo do polj iz svojih nadrejenih razredov z uporabo super, je možen polimorfizem. To omogoča bolj prilagodljivo in razširljivo kodo.
- Omogoča dostop do vedenja nadrejenega razreda : Podrazredi lahko dostopajo in uporabljajo metode in polja, definirana v njihovih nadrejenih razredih prek ključne besede super, kar jim omogoča, da izkoristijo obstoječe vedenje, ne da bi ga morali znova implementirati.
- Omogoča prilagajanje vedenja: S preglasitvijo metod in uporabo super za klic nadrejene implementacije lahko podrazredi prilagodijo in razširijo vedenje svojih nadrejenih razredov.
- Omogoča abstrakcijo in enkapsulacijo: Uporaba super spodbuja enkapsulacijo in abstrakcijo, saj omogoča podrazredom, da se osredotočijo na svoje vedenje, medtem ko se zanašajo na nadrejeni razred za obdelavo podrobnosti nižje ravni.
Na splošno je ključna beseda super ključna značilnost dedovanje in polimorfizem v Javi in ponuja številne prednosti za razvijalce, ki želijo pisati ponovno uporabljivo, razširljivo in dobro organizirano kodo.
Pomembne točke, ki si jih morate zapomniti pri uporabi ključne besede Java Super
Tukaj je nekaj pomembnih točk, na katere morate biti pozorni med uporabo super ključnih besed v Javi:
- Klic super() mora biti prvi stavek v Izpeljanem (Student) razredu konstruktor ker če pomislite na to, je logično, da nadrazred ne pozna nobenega podrazreda, zato je vsaka inicializacija, ki jo mora izvesti, ločena od katere koli inicializacije, ki jo izvaja podrazred, in je morda predpogoj zanjo. Zato mora najprej dokončati njegovo izvedbo.
- Če konstruktor eksplicitno ne prikliče konstruktorja nadrazreda, prevajalnik Jave samodejno vstavi klic konstruktorju brez argumentov nadrazreda. Če nadrazred nima konstruktorja brez argumentov, boste prejeli napako med prevajanjem. Objekt počne imeti tak konstruktor, tako da če je objekt edini nadrazred, ni težav.

- Če konstruktor podrazreda prikliče konstruktorja svojega nadrazreda, eksplicitno ali implicitno, lahko mislite, da je poklicana cela veriga konstruktorjev, vse do konstruktorja Object. To je dejansko tako. Se imenuje veriženje konstruktorja .
Pogosta vprašanja – ključna beseda Java super
Q1. Kaj je super () in ključna beseda super v Javi?
Super() je ključna beseda Jave, ki se uporablja za klic konstruktorja nadrazreda. Super dostopa do članov nadrazreda in vzdržuje hierarhije dedovanja.
Q2. Kateri je super razred Jave?
The Objektni razred ali super razred je na vrhu razredne hierarhije v Javin paket java.lang . Vsak razred, bodisi vnaprej ali uporabniško definiran, je podrazred razreda Object.
Q3. Zakaj je Super pomemben v Javi?
super je bistvenega pomena v Javi, saj olajša dostop, inicializacijo in upravljanje odnosov med nadrazredi in podrazredi, s čimer spodbuja ponovno uporabo kode.