Parola chiave super in Java - Come funziona la Super Keyword in Java con l'esempio?

Sommario:

Anonim

Introduzione a Super Keyword in Java

Super è una parola chiave utilizzata per chiamare una funzione o un metodo nella superclasse. Questo sarà definito all'interno della sottoclasse. I metodi che sono solo pubblici e protetti possono essere chiamati usando questa parola chiave. In altre parole, i metodi privati ​​e i metodi statici non possono essere chiamati utilizzando questo. La super parola chiave in Java può essere utilizzata anche per chiamare i costruttori della classe genitore. Sintassi, esempi e ulteriori dettagli della super parola chiave saranno discussi nelle sezioni seguenti.

Sintassi

super.<> or super((0 or more arguments));

Come funziona Super Keyword in Java?

Come già accennato, super può essere utilizzato in diverse occasioni. Sono usati:

  • Per fare riferimento alla variabile di istanza di una classe genitrice immediata.
  • Per fare riferimento al metodo di una classe genitrice immediata.
  • Per fare riferimento al costruttore di una classe genitrice immediata.

Ora, vediamo ciascuno di essi in dettaglio.

1. Per fare riferimento alla variabile di istanza di una classe padre immediata

Se la classe genitore e figlio hanno gli stessi membri dei dati, è possibile utilizzare la parola chiave Super per accedere al campo o al membro dei dati della classe genitore. In questo caso può verificarsi ambiguità per Java Virtual Machine.

Esempio:

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);
)
)

Qui, due classi A e B hanno un nome campo comune. Una funzione printType () all'interno della classe figlio utilizza la parola chiave super per fare riferimento al campo in una classe genitore.

2. Per fare riferimento al metodo di una classe genitrice immediata

La sostituzione del metodo è un processo mediante il quale una classe figlio dichiara la stessa funzione o metodo già disponibile nella classe padre. Supponiamo che se si verifica una chiamata al metodo dall'oggetto della classe figlio, verrà chiamato solo il metodo nella classe figlio. Per accedere al metodo genitore, è possibile utilizzare una parola chiave super.

Esempio:

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();
)
)

Qui, due classi A e B hanno lo stesso metodo hello (). Con l'aiuto di una super parola chiave nella funzione test (), è possibile accedere al metodo hello () di una classe genitore.

3. Per fare riferimento al costruttore della classe genitrice immediata

È già noto che un costruttore (predefinito) viene chiamato automaticamente quando viene creato l'oggetto di una classe. La super parola chiave può essere utilizzata per chiamare esplicitamente il costruttore della superclasse dal costruttore della sottoclasse. Assicurati che super sia usato solo all'interno del costruttore della sottoclasse ed è la prima istruzione al suo interno.

Esempio:

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"); ) )

Esempi di Super parole chiave in Java

Di seguito sono riportati i diversi esempi di super parole chiave in Java:

Esempio 1

Nel seguente programma, è presente un nome di variabile comune e super viene utilizzato per chiamare la variabile in una classe genitore.

//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
)
)

Produzione:

Esempio - 2

Questo programma aiuta a dimostrare la super parola chiave facendo riferimento allo stesso metodo in una classe genitore. Qui, ciao () è un metodo disponibile in entrambe le classi.

//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
) )

Produzione:

Esempio - 3

Questo programma chiama il costruttore della classe genitore usando la parola chiave super.

//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
)
)

Produzione:

Esempio - 4

Questo programma dimostra l'utilizzo di una super parola chiave per fare riferimento al costruttore con parametri di una classe genitore.

//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
)
)

Produzione:

Conclusione

Super è una parola chiave in Java che viene utilizzata per fare riferimento a metodi o funzioni, variabili di istanza o attributi e costruttori nella classe genitore. Se un costruttore non viene dichiarato, il compilatore crea automaticamente un costruttore predefinito. Allo stesso modo, il compilatore chiama automaticamente super () se non viene dichiarato. In questo documento, diversi aspetti della super parola chiave sono spiegati in dettaglio.

Articoli consigliati

Questa è una guida a Super Keyword in Java. Qui discutiamo di come funziona la super parola chiave dose in java insieme ad esempi. Puoi anche consultare i seguenti articoli per saperne di più -

  1. JComponent in Java
  2. Costruttore in Java
  3. Che cos'è l'ereditarietà Java?
  4. Modificatori di accesso in Java
  5. Metodo statico in PHP
  6. Eredità in PHP
  7. Guida completa all'ereditarietà in Python
  8. questa parola chiave in java | Esempi di questa parola chiave
  9. Metodo statico JavaScript | Come lavorare? | Esempi