Introduktion til Super søgeord i Java
Super er et nøgleord, der bruges til at kalde en funktion eller metode i superklassen. Dette defineres i underklassen. Metoder, der kun er offentlige og beskyttede, kan kaldes ved hjælp af dette nøgleord. Med andre ord kan private metoder og statiske metoder ikke kaldes ved hjælp af dette. Super-nøgleordet i java kan også bruges til at kalde konstruktører af forældreklassen. Syntaks, eksempler og yderligere detaljer om super nøgleord diskuteres i de følgende afsnit.
Syntaks
super.<> or super((0 or more arguments));
Hvordan fungerer Super Keyword i Java?
Som allerede nævnt kan super bruges i flere lejligheder. De bruges:
- For at henvise forekomstvariabel i en umiddelbar forældreklasse.
- For at henvise til metoden i en umiddelbar forældreklasse.
- At henvise konstruktøren til en umiddelbar forældreklasse.
Lad os nu se hver af dem detaljeret.
1. At henvise til forekomstvariabel af en øjeblikkelig forældreklasse
Hvis forældre- og barneklassen har de samme datamedlemmer, kan Super-nøgleord bruges til at få adgang til feltet eller datamedlemmet i forældreklassen. Uklarhed for Java Virtual Machine kan forekomme i dette tilfælde.
Eksempel:
class A (
protected String name="ann";
)
class B extends A (
public String name="Anna";
public void hello() (
System.out.println("I am " + name);
System.out.println("I am " + super.name);
)
)
Her har to klasser A og B et fælles feltnavn. En funktion printType () inde i barneklasse bruger super-nøgleordet til at henvise feltet i en forældreklasse.
2. Henvisning til metode til en øjeblikkelig forældreklasse
Metodeoverskridelse er en proces, hvor en barneklasse erklærer den samme funktion eller metode, der allerede er tilgængelig i forældreklassen. Antag, at hvis et opkald til metoden sker fra objektet for barneklassen, kaldes metoden kun i barneklassen. For at få adgang til overordnet metode kan et super nøgleord bruges.
Eksempel:
class A (
protected String name="ann";
public void hello() (
System.out.println("I am " + name);
)
)
class B extends A (
public String name="Anna”;
public void hello() (
System.out.println("I am " + name);
)
public void test()
(
hello();
super.hello();
)
)
Her har to klasser A og B samme metode hej (). Ved hjælp af et super nøgleord i test () -funktion er det muligt at få adgang til hallo () -metoden i en overordnet klasse.
3. Henvisning til konstruktør af øjeblikkelig forældreklasse
Det er allerede kendt, at en konstruktør (standard) automatisk kaldes, når objektets klasse oprettes. Super-nøgleordet kan bruges til eksplicit at kalde konstruktøren af superklassen fra konstruktøren af underklassen. Sørg for, at super kun bruges inden i underklassens konstruktør, og det er den første erklæring inde i det.
Eksempel:
class A (
//constructor of parent class
A() ( System.out.println("I am Kavya Madhavan");
)
)
//child class
class B extends A (
//constructor of child class
B() (
super();
System.out.println("I am Dileep Menon"); ) )
Eksempler på Super søgeord i Java
Nedenfor er de forskellige eksempler på super nøgleord i Java:
Eksempel - 1
I det følgende program er et fælles variabelnavn til stede, og super bruges til at kalde variablen i en overordnet klasse.
//Java program to illustrate Super keyword to refer instance variable
//parent class
class A (
protected String name="ann";
)
//child classs
class B extends A (
public String name="Anna";//variable which is same in parent class
//sample method
public void hello() (
System.out.println("I am " + name);
System.out.println("I am " + super.name);
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
objb.hello();//call the method in child class
)
)
Produktion:
Eksempel - 2
Dette program hjælper med at demonstrere super nøgleordet mens det refererer til den samme metode i en forældreklasse. Her er hallo () en metode, der er tilgængelig i begge klasser.
//Java program to illustrate Super keyword to refer same method in parent class
//parent class
class A (
protected String name="ann";
public void hello() (
System.out.println("I am " + name);
)
)
//child classs
class B extends A (
public String name="Anna";//variable which is same in parent class
//sample method which is same in parent class
public void hello() (
System.out.println("I am " + name);
)
//method to call the hello() method in parent and child class
public void test()
(
hello();
super.hello();
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
objb.test();//call the method in child class
) )
Produktion:
Eksempel - 3
Dette program kalder konstruktøren af forældreklassen ved hjælp af det super nøgleord.
//Java program to illustrate Super keyword to refer constructor in parent class
//parent class
class A (
//constructor of parent class
A() (
System.out.println("I am Kavya Madhavan");
)
)
//child class
class B extends A (
//constructor of child class
B() (
super();
System.out.println("I am Dileep Menon");
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
)
)
Produktion:
Eksempel - 4
Dette program demonstrerer brugen af et super nøgleord til at henvise til den parameteriserede konstruktør af en overordnet klasse.
//Java program to illustrate Super keyword to refer parameterised constructor in parent class
//parent class
class A (
//constructor of parent class
A() (
System.out.println("I am Kavya Madhavan");
)
//parameterised constructor
A(String name) (
System.out.println("I am " + name);
)
)
//child class
class B extends A (
//constructor of child class
B() (
super("Renuka");
System.out.println("I am Dileep Menon");
)
)
//main class
public class SuperExample (
public static void main(String() args) (
B objb=new B();//object of child class
)
)
Produktion:
Konklusion
Super er et nøgleord i Java, der bruges til at henvise til metoder eller funktioner, forekomstvariabler eller attributter og konstruktører i forældreklassen. Hvis en konstruktør ikke er deklareret, opretter compileren automatisk en standardkonstruktør. Tilsvarende kalder Compiler super () automatisk, hvis det ikke er deklareret. I dette dokument forklares flere aspekter af super-nøgleordet i detaljer.
Anbefalede artikler
Dette er en guide til Super søgeord i Java. Her diskuterer vi, hvordan dosis-super-søgeord fungerer i java sammen med eksempler. Du kan også se på de følgende artikler for at lære mere -
- JComponent i Java
- Konstruktør i Java
- Hvad er Java-arv?
- Få adgang til modifikatorer i Java
- Statisk metode i PHP
- Arv i PHP
- Komplet guide til arv i Python
- dette nøgleord i java | Eksempler på dette nøgleord
- Statisk JavaScript for JavaScript | Hvordan man arbejder? | eksempler