The super atslēgvārds Java ir atsauces mainīgais, ko izmanto, lai atsauktos uz vecāku klasi, kad strādājam ar objektiem. Jums jāzina pamati Mantojums un Polimorfisms lai saprastu Java super atslēgvārdu.
Atslēgvārds super ienāca attēlā ar mantojuma jēdzienu. Šajā rakstā mēs apskatīsim visu par Java izcilību, tostarp definīcijas, piemērus, lietojumus, sintaksi un daudz ko citu.
Satura rādītājs
- Super Keyword raksturojums Java valodā
- Super atslēgvārda izmantošana Java
- 1. Super izmantošana ar mainīgajiem
- 2. Super izmantošana ar metodēm
- 3. Super izmantošana ar konstruktoriem
- Java Super Keyword izmantošanas priekšrocības
Super Keyword raksturojums Java valodā
Java valodā super atslēgvārds tiek izmantots, lai atsauktos uz apakšklases vecāku klasi. Šeit ir daži no tā galvenajiem raksturlielumiem:
- super tiek izmantots, lai izsauktu superklases konstruktoru: Kad apakšklase ir izveidota, tās konstruktoram ir jāizsauc tās vecākklases konstruktors. Tas tiek darīts, izmantojot atslēgvārdu super(), kas izsauc vecākklases konstruktoru.
- super tiek izmantots, lai izsauktu superklases metodi: Apakšklase var izsaukt metodi, kas definēta tās vecākklasē, izmantojot superatslēgvārdu. Tas ir noderīgi, ja apakšklase vēlas izsaukt vecākklases metodes ieviešanu papildus savai pašai.
- super tiek izmantots, lai piekļūtu superklases laukam: Apakšklase var piekļūt laukam, kas definēts tās vecākklasē, izmantojot superatslēgvārdu. Tas ir noderīgi, ja apakšklase vēlas atsaukties uz lauka vecākklases versiju.
- super ir jābūt pirmajam konstruktora apgalvojumam: Izsaucot virsklases konstruktoru, priekšrakstam super() jābūt pirmajam priekšrakstam apakšklases konstruktorā.
- super nevar izmantot statiskā kontekstā: Super atslēgvārdu nevar izmantot statiskā kontekstā, piemēram, statiskā metodē vai statiskā mainīgā inicializatorā.
- super nav nepieciešams izsaukt superklases metodi: Lai gan ir iespējams izmantot atslēgvārdu super, lai izsauktu metodi vecākklasē, tas nav nepieciešams. Ja metode apakšklasē nav ignorēta, tad, izsaucot to bez superatslēgvārda, tiks izsaukta vecākklases ieviešana.
Kopumā super atslēgvārds ir spēcīgs rīks Java apakšklasēm, ļaujot apakšklasēm mantot un balstīties uz savu vecāku klašu funkcionalitāti.
Super atslēgvārda izmantošana Java
To galvenokārt izmanto šādos kontekstos, kā minēts tālāk:
- Super izmantošana ar mainīgajiem
- Super izmantošana ar metodēm
- Super izmantošana ar konstruktoriem
1. Super izmantošana ar mainīgajiem
Šis scenārijs notiek, ja atvasinātajai klasei un bāzes klasei ir vienādi datu dalībnieki. Tādā gadījumā pastāv neskaidrības iespējamība JVM .
Mēs to varam skaidrāk saprast, izmantojot šādu piemēru:
Piemērs
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();> >}> }> |
>
>Izvade
Maximum Speed: 120>
Iepriekš minētajā piemērā gan bāzes klasei, gan apakšklasei ir dalībnieks maxSpeed. Mēs varētu piekļūt apakšklases bāzes klases maksimālajam ātrumam, izmantojot super atslēgvārdu.
2. Super izmantošana ar metodēm
To izmanto, ja vēlamies izsaukt vecāku klasi metodi . Tāpēc ikreiz, kad vecāku un bērnu klasei ir vienādi nosauktās metodes, lai atrisinātu neskaidrības, mēs izmantojam super atslēgvārdu.
Šis koda fragments palīdz izprast minēto atslēgvārda super lietojumu.
Piemērs
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();> >}> }> |
>
>Izvade
This is student class This is person class>
Iepriekš minētajā piemērā mēs to redzējām, ja mēs izsaucam tikai metodi ziņa () tad tiek izsaukts pašreizējais klases ziņojums(), bet tiek izmantots super atslēgvārds, ziņa () var atsaukties arī uz virsklasi.
3. Super izmantošana ar konstruktoriem
Super atslēgvārdu var izmantot arī, lai piekļūtu vecākklases konstruktoram. Vēl viena svarīga lieta ir tā, ka “super” atkarībā no situācijas var izsaukt gan parametriskos, gan neparametriskos konstruktorus.
Šis ir koda fragments, lai izskaidrotu iepriekš minēto jēdzienu:
1. piemērs
Java
rindas autocad komanda
// 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();> >}> }> |
>
>Izvade
Person class Constructor Student class Constructor>
Iepriekš minētajā piemērā mēs esam izsaukuši virsklases konstruktoru, izmantojot atslēgvārdu “super”, izmantojot apakšklases konstruktoru.
2. piemērs
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);> >}> }> |
>
>Izvade
false>
Java Super Keyword izmantošanas priekšrocības
The super atslēgvārds Java sniedz daudzas priekšrocības objektorientētajā programmēšanā:
- Ļauj atkārtoti izmantot kodu : Super atslēgvārda izmantošana ļauj apakšklasēm mantot funkcionalitāti no savām vecākklasēm, kas veicina koda atkārtotu izmantošanu un samazina dublēšanos.
- Atbalsta polimorfismu : Tā kā apakšklases var ignorēt metodes un piekļuves laukus no savām vecākklasēm, izmantojot super, ir iespējams polimorfisms. Tas nodrošina elastīgāku un paplašināmu kodu.
- Nodrošina piekļuvi vecāku klases uzvedībai : apakšklases var piekļūt un izmantot metodes un laukus, kas definēti savās vecākklasēs, izmantojot superatslēgvārdu, kas ļauj tām izmantot esošās darbības priekšrocības bez nepieciešamības to ieviest atkārtoti.
- Ļauj pielāgot uzvedību: Ignorējot metodes un izmantojot super, lai izsauktu vecāku implementāciju, apakšklases var pielāgot un paplašināt savu vecāku klašu darbību.
- Atvieglo abstrakciju un iekapsulēšanu: Super izmantošana veicina iekapsulēšanu un abstrakciju, ļaujot apakšklasēm koncentrēties uz savu uzvedību, vienlaikus paļaujoties uz vecāku klasi, lai apstrādātu zemāka līmeņa detaļas.
Kopumā super atslēgvārds ir galvenā iezīme mantojums un polimorfisms Java, un tas sniedz vairākas priekšrocības izstrādātājiem, kuri vēlas rakstīt atkārtoti lietojamu, paplašināmu un labi sakārtotu kodu.
Svarīgi punkti, kas jāatceras, lietojot Java Super Keyword
Šeit ir daži svarīgi punkti, kas jums jāievēro, izmantojot Java superatslēgvārdus:
- Izsaukumam uz super() ir jābūt pirmajam priekšrakstam atvasināto (studentu) klasē konstruktors jo, ja tā padomājat, ir loģiski, ka virsklasei nav zināšanu par nevienu apakšklasi, tāpēc jebkura inicializācija, kas tai jāveic, ir nošķirta no jebkuras apakšklases veiktās inicializācijas un, iespējams, tās priekšnoteikums. Tāpēc vispirms ir jāpabeidz tā izpilde.
- Ja konstruktors nepārprotami neizsauc virsklases konstruktoru, Java kompilators automātiski ievieto izsaukumu virsklases bezargumentu konstruktoram. Ja virsklasei nav bezargumentu konstruktora, jūs saņemsiet kompilēšanas laika kļūdu. Objekts dara ir šāds konstruktors, tāpēc, ja objekts ir vienīgā superklase, nav problēmu.

- Ja apakšklases konstruktors tieši vai netieši izsauc savas virsklases konstruktoru, jūs varētu domāt, ka tiek izsaukta vesela konstruktoru ķēde, līdz pat objekta konstruktoram. Tā tas patiesībā ir. Tas tiek saukts konstruktora ķēdēšana .
FAQ — Java super Keyword
Q1. Kas ir super () un super atslēgvārds Java?
Super() ir Java atslēgvārds, ko izmanto, lai izsauktu superklases konstruktoru. Super piekļūst superklases dalībniekiem un uztur mantojuma hierarhijas.
Q2. Kura ir Java superklase?
The Objektu klase aka superklase atrodas klases hierarhijas augšgalā Java java.lang pakotne . Katra klase, neatkarīgi no tā, vai tā ir iepriekš vai lietotāja definēta, ir objektu klases apakšklase.
Q3. Kāpēc Java ir ļoti svarīga?
super ir būtiska Java, jo tas atvieglo piekļuvi, inicializāciju un attiecību pārvaldību starp virsklasēm un apakšklasēm, tādējādi veicinot koda atkārtotu izmantošanu.