Introdução à super palavra-chave em Java
Super é uma palavra-chave usada para chamar uma função ou método na superclasse. Isso será definido dentro da subclasse. Métodos que são apenas públicos e protegidos podem ser chamados usando esta palavra-chave. Em outras palavras, métodos privados e métodos estáticos não podem ser chamados usando isso. A super palavra-chave em java também pode ser usada para chamar os construtores da classe pai. Sintaxe, exemplos e detalhes adicionais de super palavra-chave serão discutidos nas seções a seguir.
Sintaxe
super.<> or super((0 or more arguments));
Como a Super Keyword funciona em Java?
Como já mencionado, o super pode ser usado em várias ocasiões. Eles são usados:
- Para referenciar variável de instância de uma classe pai imediata.
- Para se referir ao método de uma classe pai imediata.
- Para referenciar o construtor de uma classe pai imediata.
Agora, vamos ver cada um deles em detalhes.
1. Para referenciar variável de instância de uma classe pai imediata
Se a classe pai e filho tiverem os mesmos membros de dados, a palavra-chave Super poderá ser usada para acessar o campo ou membro de dados da classe pai. A ambiguidade para Java Virtual Machine pode ocorrer nesse caso.
Exemplo:
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);
)
)
Aqui, duas classes A e B têm um nome de campo comum. Uma função printType () dentro da classe filho usa a super palavra-chave para referenciar o campo em uma classe pai.
2. Para Referir o Método de uma Classe Pai Imediata
A substituição de método é um processo pelo qual uma classe filho declara a mesma função ou método que já está disponível na classe pai. Suponha que, se uma chamada para o método acontecer a partir do objeto da classe filho, o método somente na classe filho será chamado. Para acessar o método pai, uma super palavra-chave pode ser usada.
Exemplo:
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();
)
)
Aqui, duas classes A e B têm o mesmo método hello (). Com a ajuda de uma super palavra-chave na função test (), é possível acessar o método hello () de uma classe pai.
3. Referir o Construtor da Classe Pai Imediata
Já se sabe que um construtor (padrão) é chamado automaticamente quando o objeto de uma classe é criado. A super palavra-chave pode ser usada para chamar explicitamente o construtor da superclasse a partir do construtor da subclasse. Certifique-se de que super seja usado apenas dentro do construtor da subclasse e seja a primeira instrução dentro disso.
Exemplo:
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"); ) )
Exemplos de super palavra-chave em Java
Abaixo estão os diferentes exemplos de super palavra-chave em Java:
Exemplo 1
No programa a seguir, um nome de variável comum está presente e super é usado para chamar a variável em uma classe pai.
//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
)
)
Resultado:
Exemplo - 2
Este programa ajuda a demonstrar a super palavra-chave enquanto se refere ao mesmo método em uma classe pai. Aqui, hello () é um método disponível em ambas as classes.
//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
) )
Resultado:
Exemplo - 3
Este programa chama o construtor da classe pai usando a super palavra-chave.
//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
)
)
Resultado:
Exemplo - 4
Este programa demonstra o uso de uma super palavra-chave para se referir ao construtor parametrizado de uma classe pai.
//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
)
)
Resultado:
Conclusão
Super é uma palavra-chave em Java usada para se referir aos métodos ou funções, variáveis de instância ou atributos e construtores na classe pai. Se um construtor não for declarado, o compilador cria automaticamente um construtor padrão. Da mesma forma, o compilador chama super () automaticamente se não for declarado. Neste documento, vários aspectos da super palavra-chave são explicados em detalhes.
Artigos recomendados
Este é um guia para a Super palavra-chave em Java. Aqui discutimos como a super palavra-chave dose funciona em java junto com exemplos. Você também pode consultar os seguintes artigos para saber mais -
- JComponent em Java
- Construtor em Java
- O que é herança em Java?
- Modificadores de acesso em Java
- Método estático em PHP
- Herança em PHP
- Guia completo de herança em Python
- esta palavra-chave em java | Exemplos desta palavra-chave
- Método estático JavaScript | Como trabalhar? | Exemplos