Baixe o material de estudo
Fala, meus consagrados! Beleza?
A palavra-chave super é usada dentro de subclasse para referenciar o construtor, métodos ou atributos da superclasse imediata. Esse mecanismo é crucial para o conceito de herança em programação orientada a objetos, permitindo que uma classe derivada acesse e utilize funcionalidades definidas em sua classe base (ou superclasse).
O uso de super é restrito ao contexto de herança, significando que só pode ser utilizado dentro de uma subclasse para referenciar sua superclasse imediata. Essa palavra-chave permite a interação entre classes em uma hierarquia de herança, facilitando a reutilização de código e o polimorfismo.
Essa palavra-chave pode ser usada para chamar construtor da superclasse. Esses é um dos usos mais comuns de super é invocar explicitamente o construtor da superclasse dentro do construtor da subclasse. Isso é especialmente útil quando a superclasse não possui um construtor padrão (sem argumentos) ou quando queremos passar argumentos específicos para o construtor da superclasse.
A chamada a super() deve ser a primeira instrução no construtor da subclasse. Se não for explicitamente incluída, o compilador tentará invocar o construtor padrão da superclasse (sem parâmetros) implicitamente.
Sintaxe:
super(argumentos);
Exemplo:
public class Superclasse {
public Superclasse(int x) {
// Implementação do construtor
}
}
public class Subclasse extends Superclasse {
public Subclasse(int x) {
super(x); // Chama o construtor da superclasse
}
}
No exemplo acima, super(x) é usado para chamar explicitamente o construtor da superclasse Superclasse passando o argumento x.
A palavra-chave super também pode ser usada para invocar métodos da superclasse que foram sobrescritos pela subclasse.
Exemplo:
public class Superclasse {
public void mostrar() {
System.out.println("Método da superclasse");
}
}
public class Subclasse extends Superclasse {
public void mostrar() {
// Chama o método mostrar() da superclasse.
super.mostrar();
System.out.println("Método da subclasse");
}
}
Aqui, super.mostrar() invoca o método mostrar() da superclasse dentro da implementação sobrescrita da subclasse.
Finalmente, usamos super para acessar atributos da superclasse que podem ter sido ocultados por atributos de mesmo nome na subclasse.
Exemplo:
public class Superclasse {
protected int numero = 10;
}
public class Subclasse extends Superclasse {
protected int numero = 20;
public void mostrarNumero() {
// Mostra o número da superclasse.
System.out.println(super.numero);
// Mostra o número da subclasse.
System.out.println(numero);
}
}
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
_________________________
Professor Rogerão Araújo
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
CONCURSOS 2025
CONCURSOS ABERTOS
QUESTÕES DE CONCURSOS
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
TELEGRAM
Fonte: Gran Cursos Online