A palavra-chave super
em Java é usada para se referir à superclasse imediata de uma classe. Ela é muito útil em situações onde uma classe herda de outra e você deseja acessar métodos, construtores ou variáveis da superclasse que foram sobrescritos na subclasse. A palavra-chave super
permite que você acesse membros da superclasse de forma explícita.
Principais usos da palavra-chave super
- Chamar o construtor da superclasse
Quando uma subclasse é instanciada, o construtor da superclasse também é chamado. Isso é feito implicitamente, mas você pode usarsuper()
para invocar um construtor específico da superclasse. - Acessar métodos da superclasse
Se a subclasse sobrescrever um método da superclasse, você pode usarsuper
para chamar o método da superclasse. - Acessar variáveis da superclasse
Caso uma variável de instância na subclasse tenha o mesmo nome de uma variável na superclasse, você pode usarsuper
para acessar a variável da superclasse.
Posts recentes
Exemplos de uso
1.Chamando o construtor da superclasse:
class Animal {
Animal() {
System.out.println("Animal criado");
}
}
class Cachorro extends Animal {
Cachorro() {
super(); // Chama o construtor da superclasse (Animal)
System.out.println("Cachorro criado");
}
}
public class Teste {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
}
}
Saída:
Animal criado
Cachorro criado
2.Chamando o método da superclasse:
class Animal {
void fazerSom() {
System.out.println("Animal faz som");
}
}
class Cachorro extends Animal {
void fazerSom() {
super.fazerSom(); // Chama o método da superclasse
System.out.println("Cachorro late");
}
}
public class Teste {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.fazerSom();
}
}
Saída:
Animal faz som
Cachorro late
3.Acessando variáveis da superclasse:
class Animal {
String nome = "Animal";
}
class Cachorro extends Animal {
String nome = "Cachorro";
void exibirNome() {
System.out.println(nome); // Acessa a variável da subclasse
System.out.println(super.nome); // Acessa a variável da superclasse
}
}
public class Teste {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.exibirNome();
}
}
Saída:
Cachorro
Animal
Resumo dos usos da palavra-chave super
:
super()
: Invoca o construtor da superclasse.super.metodo()
: Chama um método da superclasse.super.variavel
: Acessa uma variável de instância da superclasse.
O uso de super
é especialmente importante quando lidamos com herança em Java, garantindo que a subclasse possa se beneficiar das funcionalidades da superclasse, mesmo quando estas foram sobrescritas.