The super avainsana Javassa on viitemuuttuja, jota käytetään viittaamaan yläluokkaan, kun työskentelemme objektien kanssa. Sinun on tiedettävä perusasiat Perintö ja Polymorfismi ymmärtää Java-super-avainsanan.
Avainsana super tuli kuvaan perinnön käsitteellä. Tässä artikkelissa käsittelemme kaikkea Java-superista, mukaan lukien määritelmät, esimerkit, käyttötavat, syntaksi ja paljon muuta.
Sisällysluettelo
- Super-avainsanan ominaisuudet Javassa
- Super-avainsanan käyttö Javassa
- 1. Super:n käyttö muuttujien kanssa
- 2. Superin käyttö menetelmien kanssa
- 3. Superin käyttö rakentajien kanssa
- Java Super Keywordin käytön edut
Super-avainsanan ominaisuudet Javassa
Javassa superavainsanaa käytetään viittaamaan alaluokan pääluokkaan. Tässä on joitain sen tärkeimmistä ominaisuuksista:
- superia käytetään kutsumaan superluokan konstruktoria: Kun alaluokka luodaan, sen rakentajan on kutsuttava sen emoluokan rakentaja. Tämä tehdään käyttämällä super()-avainsanaa, joka kutsuu yläluokan konstruktoria.
- superia käytetään kutsumaan superluokkamenetelmää: Alaluokka voi kutsua pääluokassaan määritettyä menetelmää käyttämällä superavainsanaa. Tämä on hyödyllistä, kun alaluokka haluaa kutsua emoluokan menetelmän toteutuksen oman luokansa lisäksi.
- superia käytetään pääsyyn superluokka-kenttään: Alaluokka voi päästä pääluokassa määritettyyn kenttiin super-avainsanalla. Tämä on hyödyllistä, kun alaluokka haluaa viitata yläluokan kentän versioon.
- super on konstruktorin ensimmäinen lause: Kutsuttaessa superluokkakonstruktoria, super()-lauseen tulee olla ensimmäinen lause alaluokan konstruktorissa.
- supera ei voi käyttää staattisessa yhteydessä: Super-avainsanaa ei voi käyttää staattisessa kontekstissa, kuten staattisessa menetelmässä tai staattisen muuttujan alustuksessa.
- supera ei vaadita kutsumaan superluokkamenetelmää: Vaikka on mahdollista käyttää super-avainsanaa menetelmän kutsumiseen pääluokassa, sitä ei vaadita. Jos menetelmää ei ohiteta alaluokassa, sen kutsuminen ilman super-avainsanaa kutsuu pääluokan toteutuksen.
Kaiken kaikkiaan super avainsana on tehokas työkalu Java-alaluokkien luomiseen, jolloin alaluokat voivat periä ja rakentaa yläluokkiensa toimintoja.
Super-avainsanan käyttö Javassa
Sitä käytetään pääasiassa seuraavissa yhteyksissä, kuten alla mainitaan:
- Superin käyttö muuttujien kanssa
- Superin käyttö menetelmien kanssa
- Superin käyttö rakentajien kanssa
1. Superin käyttö muuttujien kanssa
Tämä skenaario tapahtuu, kun johdetulla luokalla ja perusluokalla on samat datajäsenet. Siinä tapauksessa on olemassa epäselvyyden mahdollisuus JVM .
Voimme ymmärtää sen selkeämmin seuraavan esimerkin avulla:
Esimerkki
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();> >}> }> |
>
>Lähtö
Maximum Speed: 120>
Yllä olevassa esimerkissä sekä perusluokalla että alaluokalla on jäsen maxSpeed. Pääsimme alaluokan perusluokan maxSpeed-arvoon käyttämällä super-avainsanaa.
2. Superin käyttö menetelmien kanssa
Tätä käytetään, kun haluamme kutsua yläluokkaa menetelmä . Joten aina kun vanhemmalla ja lapsiluokalla on samanniminen menetelmä, käytämme epäselvyyden ratkaisemiseksi super-avainsanaa.
Tämä koodinpätkä auttaa ymmärtämään super-avainsanan mainitun käytön.
Esimerkki
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();> >}> }> |
>
>Lähtö
This is student class This is person class>
Yllä olevassa esimerkissä olemme nähneet, että jos kutsumme vain metodia viesti() sitten nykyinen luokkaviesti() kutsutaan, mutta käyttämällä super-avainsanaa, viesti() superluokkaan voidaan myös vedota.
3. Superin käyttö rakentajien kanssa
Super-avainsanaa voidaan käyttää myös pääluokan rakentajan käyttämiseen. Toinen tärkeä asia on, että 'super' voi kutsua sekä parametrisia että ei-parametrisia konstruktoreita tilanteesta riippuen.
Seuraavassa on koodinpätkä, joka selittää yllä olevan käsitteen:
Esimerkki 1
Java
unix-yläkomento
// 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();> >}> }> |
>
>Lähtö
Person class Constructor Student class Constructor>
Yllä olevassa esimerkissä olemme kutsuneet superluokan konstruktoria käyttämällä avainsanaa 'super' alaluokkakonstruktorin kautta.
Esimerkki 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);> >}> }> |
>
>Lähtö
false>
Java Super Keywordin käytön edut
The super avainsana Javassa tarjoaa monia etuja olio-ohjelmoinnissa, ovat seuraavat:
- Mahdollistaa koodin uudelleenkäytön : Super-avainsanan käyttö sallii alaluokkien periä toiminnallisuuden yläluokistaan, mikä edistää koodin uudelleenkäyttöä ja vähentää päällekkäisyyksiä.
- Tukee polymorfismia : Koska alaluokat voivat ohittaa menetelmiä ja pääsykenttiä yläluokistaan käyttämällä supera, polymorfismi on mahdollista. Tämä mahdollistaa joustavamman ja laajennettavissa olevan koodin.
- Tarjoaa pääsyn vanhempien luokan käyttäytymiseen : Alaluokat voivat käyttää ja käyttää yläluokissaan määritettyjä menetelmiä ja kenttiä super-avainsanan kautta, mikä antaa heille mahdollisuuden hyödyntää olemassa olevaa käyttäytymistä ilman, että niitä tarvitsee toteuttaa uudelleen.
- Mahdollistaa käyttäytymisen mukauttamisen: Ohitamalla menetelmiä ja käyttämällä super-toimintoa ylätason toteutuksen kutsumiseen, alaluokat voivat mukauttaa ja laajentaa yläluokkiensa toimintaa.
- Helpottaa abstraktiota ja kapselointia: Superin käyttö edistää kapseloitumista ja abstraktiota sallimalla alaluokkien keskittyä käyttäytymiseensa ja luottaa siihen, että emoluokka käsittelee alemman tason yksityiskohtia.
Kaiken kaikkiaan super-avainsana on keskeinen ominaisuus perinnön ja polymorfismi Javassa, ja se tarjoaa useita etuja kehittäjille, jotka haluavat kirjoittaa uudelleen käytettävää, laajennettavaa ja hyvin järjestettyä koodia.
Tärkeitä seikkoja, jotka on muistettava käytettäessä Java Super -avainsanaa
Tässä on joitain tärkeitä kohtia, joista sinun on huolehdittava käyttäessäsi superavainsanoja Javassa:
- Kutsun super() on oltava johdettu(opiskelija)-luokan ensimmäinen lause rakentaja koska jos ajattelee sitä, on järkevää, että yliluokalla ei ole tietoa mistään alaluokasta, joten kaikki sen suorittamat alustukset ovat erillisiä ja mahdollisesti edellytyksiä alaluokan suorittamille alustuksille. Siksi sen on ensin suoritettava loppuun.
- Jos konstruktori ei nimenomaisesti kutsu superluokan konstruktoria, Java-kääntäjä lisää automaattisesti kutsun superluokan argumentittomaan konstruktoriin. Jos superluokassa ei ole argumentoimatonta konstruktoria, saat käännösaikavirheen. Objekti tekee on tällainen konstruktori, joten jos Object on ainoa superluokka, ei ole ongelmaa.

- Jos aliluokan konstruktori kutsuu superluokkansa konstruktoria, joko eksplisiittisesti tai implisiittisesti, saatat ajatella, että kutsutaan kokonainen konstruktoriketju, aina objektin konstruktoriin asti. Itse asiassa näin on. Sitä kutsutaan rakentajan ketjuttaminen .
UKK – Java superavainsana
Q1. Mikä on super () ja super avainsana Javassa?
Super() on Java-avainsana, jota käytetään kutsumaan superluokan konstruktoria. Super käyttää superluokan jäseniä ja ylläpitää perintöhierarkioita.
Q2. Mikä on Java:n huippuluokka?
The Objektiluokka eli superluokka on luokkahierarkian huipulla Javan java.lang-paketti . Jokainen luokka, joko ennalta tai käyttäjän määrittelemä, on Object-luokan alaluokka.
Q3. Miksi Super on tärkeä Javassa?
super on välttämätön Javassa, koska se helpottaa pääsyä, alustusta ja superluokkien ja alaluokkien välisten suhteiden hallintaa, mikä edistää koodin uudelleenkäytettävyyttä.