El súper paraula clau en Java és una variable de referència que s'utilitza per fer referència a la classe pare quan estem treballant amb objectes. Necessites conèixer les bases Herència i Polimorfisme per entendre la súper paraula clau de Java.
La paraula clau súper va entrar en escena amb el concepte d'herència. En aquest article, tractarem tot sobre super a Java, incloses definicions, exemples, usos, sintaxi i molt més.
Taula de contingut
- Característiques de Super Keyword a Java
- Ús de la paraula clau super a Java
- 1. Ús de super amb variables
- 2. Ús de super amb mètodes
- 3. Ús de super amb constructors
- Avantatges d'utilitzar Java Super Keyword
Característiques de Super Keyword a Java
A Java, la paraula clau super s'utilitza per referir-se a la classe pare d'una subclasse. Aquestes són algunes de les seves característiques principals:
- super s'utilitza per cridar un constructor de superclasse: Quan es crea una subclasse, el seu constructor ha de cridar al constructor de la seva classe pare. Això es fa mitjançant la paraula clau super(), que crida al constructor de la classe pare.
- super s'utilitza per cridar un mètode de superclasse: Una subclasse pot cridar un mètode definit a la seva classe pare mitjançant la paraula clau super. Això és útil quan la subclasse vol invocar la implementació del mètode per part de la classe pare a més de la seva pròpia.
- super s'utilitza per accedir a un camp de superclasse: Una subclasse pot accedir a un camp definit a la seva classe pare mitjançant la paraula clau super. Això és útil quan la subclasse vol fer referència a la versió d'un camp de la classe pare.
- super ha de ser la primera declaració d'un constructor: Quan es crida a un constructor de superclasse, la instrucció super() ha de ser la primera instrucció del constructor de la subclasse.
- super no es pot utilitzar en un context estàtic: La paraula clau super no es pot utilitzar en un context estàtic, com ara un mètode estàtic o un inicialitzador de variables estàtics.
- super no és necessari per cridar un mètode de superclasse: Tot i que és possible utilitzar la paraula clau super per cridar un mètode a la classe pare, no és necessària. Si un mètode no es substitueix a la subclasse, cridar-lo sense la paraula clau super invocarà la implementació de la classe pare.
En general, el súper paraula clau és una potent eina per a subclassificar a Java, que permet que les subclasses heretin i es construeixin a partir de la funcionalitat de les seves classes pare.
Ús de la paraula clau super a Java
S'utilitza principalment en els contextos següents, tal com s'esmenta a continuació:
- Ús de super amb variables
- Ús de super amb mètodes
- Ús de super amb els constructors
1. Ús de super amb variables
Aquest escenari es produeix quan una classe derivada i una classe base tenen els mateixos membres de dades. En aquest cas, hi ha una possibilitat d'ambigüitat JVM .
Ho podem entendre més clarament utilitzant l'exemple següent:
Exemple
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();> >}> }> |
>
>Sortida
Maximum Speed: 120>
A l'exemple anterior, tant la classe base com la subclasse tenen un membre maxSpeed. Podríem accedir a la velocitat màxima de la classe base a la subclasse mitjançant la paraula clau super.
2. Ús de super amb mètodes
S'utilitza quan volem trucar a la classe pare mètode . Així, cada vegada que una classe pare i fill tenen els mètodes amb el mateix nom, per resoldre l'ambigüitat fem servir la paraula clau super.
Aquest fragment de codi ajuda a entendre l'ús esmentat de la súper paraula clau.
Exemple
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();> >}> }> |
>
>Sortida
This is student class This is person class>
A l'exemple anterior, hem vist que si només cridem mètode missatge () llavors, s'invoca la classe actual message() però amb l'ús de la paraula clau super, missatge () de la superclasse també es podria invocar.
3. Ús de super amb constructors
La paraula clau super també es pot utilitzar per accedir al constructor de classe pare. Una cosa més important és que 'super' pot cridar tant constructors paramètrics com no paramètrics segons la situació.
A continuació es mostra el fragment de codi per explicar el concepte anterior:
Exemple 1
Java
seleccioneu entre diverses taules en sql
// 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();> >}> }> |
>
>Sortida
Person class Constructor Student class Constructor>
A l'exemple anterior, hem cridat el constructor de la superclasse mitjançant la paraula clau 'super' mitjançant el constructor de subclasses.
Exemple 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);> >}> }> |
>
>Sortida
false>
Avantatges d'utilitzar Java Super Keyword
El súper paraula clau en Java ofereix molts avantatges en la programació orientada a objectes són els següents:
- Permet la reutilització del codi : L'ús de la paraula clau súper permet que les subclasses heretin la funcionalitat de les classes pares, la qual cosa afavoreix la reutilització del codi i redueix la duplicació.
- Admet polimorfisme : Com que les subclasses poden substituir mètodes i accedir als camps des de les seves classes pares utilitzant super, el polimorfisme és possible. Això permet un codi més flexible i extensible.
- Proporciona accés al comportament de la classe dels pares : Les subclasses poden accedir i utilitzar mètodes i camps definits a les seves classes pare mitjançant la paraula clau super, que els permet aprofitar el comportament existent sense haver de tornar a implementar-lo.
- Permet personalitzar el comportament: En anul·lar mètodes i utilitzant super per cridar la implementació principal, les subclasses poden personalitzar i ampliar el comportament de les seves classes pare.
- Facilita l'abstracció i l'encapsulació: L'ús de súper promou l'encapsulació i l'abstracció permetent que les subclasses se centren en el seu comportament alhora que confien en la classe pare per gestionar els detalls de nivell inferior.
En general, la súper paraula clau és una característica clau de herència i polimorfisme a Java, i ofereix diversos avantatges per als desenvolupadors que busquen escriure codi reutilitzable, extensible i ben organitzat.
Punts importants a recordar quan utilitzeu Java Super Keyword
Aquests són alguns punts importants que heu de tenir en compte durant l'ús de super paraules clau a Java:
- La crida a super() ha de ser la primera instrucció de la classe derivada (estudiant). constructor perquè si hi penseu bé, té sentit que la superclasse no tingui coneixement de cap subclasse, de manera que qualsevol inicialització que necessiti realitzar és independent i possiblement requisit previ per a qualsevol inicialització realitzada per la subclasse. Per tant, primer ha de completar la seva execució.
- Si un constructor no invoca explícitament un constructor de superclasse, el compilador Java insereix automàticament una crida al constructor sense argument de la superclasse. Si la superclasse no té un constructor sense argument, obtindreu un error en temps de compilació. L'objecte fa tenir aquest constructor, de manera que si l'Objecte és l'única superclasse, no hi ha cap problema.

- Si un constructor de subclasse invoca un constructor de la seva superclasse, ja sigui de manera explícita o implícita, podríeu pensar que s'anomena tota una cadena de constructors, fins al constructor d'Objecte. Aquest, de fet, és el cas. Es diu encadenament del constructor .
Preguntes freqüents: súper paraula clau de Java
Q1. Què és la paraula clau super () i super a Java?
Super() és una paraula clau de Java que s'utilitza per cridar un constructor de superclasse. Super accedeix als membres de la superclasse i manté les jerarquies d'herència.
P2. Quina és la superclasse de Java?
El Classe d'objectes, també súper classe es troba al capdamunt de la jerarquia de classes El paquet java.lang de Java . Cada classe, ja sigui predefinida o definida per l'usuari, és una subclasse de la classe Object.
P3. Per què és Super important a Java?
super és essencial a Java, ja que facilita l'accés, la inicialització i la gestió de les relacions entre superclasses i subclasses, afavorint així la reutilització del codi.