Guia para a palavra-chave super Java
1. Introdução
Neste tutorial rápido,we’ll take a look at the super Java keyword.
Simplificando, podemos usar a palavra-chavesuper para acessar a classe pai.
Vamos explorar as aplicações da palavra-chave central no idioma.
2. A palavra-chavesuper com construtores
We can use super() to call the parent default constructor. Deve ser a primeira declaração em um construtor.
Em nosso exemplo, usamossuper(message) com o argumentoString:
public class SuperSub extends SuperBase {
public SuperSub(String message) {
super(message);
}
}
Vamos criar uma instância de classe filha e ver o que está acontecendo por trás:
SuperSub child = new SuperSub("message from the child class");
A palavra-chavenew invoca o construtor doSuperSub, que por si só chama o construtor pai primeiro e passa o argumentoString para ele.
3. Acessando variáveis da classe pai
Vamos criar uma classe pai com a variável de instânciamessage:
public class SuperBase {
String message = "super class";
}
Agora, criamos uma classe filho com a variável com o mesmo nome:
public class SuperSub extends SuperBase {
String message = "child class";
public void getParentMessage() {
System.out.println(super.message);
}
}
Podemos acessar a variável pai da classe filha usando a palavra-chavesuper.
4. A palavra-chavesuper com substituição de método
Antes de prosseguir, recomendamos revisar nosso guiamethod overriding.
Vamos adicionar um método de instância à nossa classe pai:
public class SuperBase {
String message = "super class";
public void printMessage() {
System.out.println(message);
}
}
E substitua o métodoprintMessage() em nossa classe filha:
public class SuperSub extends SuperBase {
String message = "child class";
public SuperSub() {
super.printMessage();
printMessage();
}
public void printMessage() {
System.out.println(message);
}
}
We can use the super to access the overridden method from the child class. Osuper.printMessage() no construtor chama o método pai deSuperBase.
5. Conclusão
Neste artigo, exploramos a palavra-chavesuper.
Como de costume, o código completo está disponívelover on Github.