Usando super para acessar membros da superclasse
Java para Iniciantes (Oracle)
Posted on September 14, 2024
super como referência à superclasse:
- Em Java, super pode ser usado para referenciar membros (variáveis e métodos) da superclasse.
- A sintaxe é super.membro, onde membro pode ser uma variável ou um método da superclasse.
Ocultação de Membros:
- Quando uma subclasse define um membro (variável ou método) com o mesmo nome de um membro da superclasse, o membro da subclasse "oculta" o membro da superclasse.
- super é usado para acessar os membros da superclasse que foram ocultados pela subclasse.
Exemplo de Ocultação de Variáveis:
- Se uma subclasse define uma variável de instância com o mesmo nome de uma variável da superclasse, a variável da superclasse pode ser acessada usando super.
- Esse mecanismo permite resolver ambiguidades entre membros com o mesmo nome.
Chamadas de Métodos Ocultos:
- Além de variáveis, super também pode ser usado para chamar métodos da superclasse que foram sobrescritos ou ocultados por métodos com o mesmo nome na subclasse.
Exemplo de Código:
// Usando super para resolver o problema de ocultação de nomes.
class A {
int i;
}
// Cria uma subclasse estendendo a classe A.
class B extends A {
int i; // essa variável i oculta a variável i de A.
B(int a, int b) {
super.i = a; // i de A
i = b; // i de B
}
void show() {
System.out.println("i in superclass: " + super.i);
System.out.println("i in subclass: " + i);
}
}
class UseSuper {
public static void main(String args[]) {
B subOb = new B(1, 2);
subOb.show();
}
}
Saída:
i in superclass: 1
i in subclass: 2
Conclusão:
- A palavra-chave super permite acessar membros da superclasse que foram ocultados pela subclasse.
- Isso é útil em cenários de herança, onde membros de mesmo nome existem tanto na superclasse quanto na subclasse.
- super pode ser usado tanto para variáveis quanto para métodos ocultos.
💖 💪 🙅 🚩
Java para Iniciantes (Oracle)
Posted on September 14, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.