super em Java

Siddharth Swami 12 outubro 2023
super em Java

Em Java, temos uma palavra-chave predefinida super que está de alguma forma relacionada à classe pai. Discutiremos a função super em detalhes neste tutorial.

Em Java, a palavra-chave super atua como uma variável de referência para os objetos da classe pai. Ele pode ser usado para chamar os métodos e variáveis ​​da classe do pai.

Por exemplo

class Teacher { // Parent class
  int grade = 90;
}

class Students extends Teacher { // subclass
  Students() {
    System.out.println("Grade " + super.grade);
  }
}

public class Main {
  public static void main(String[] args) {
    Students s = new Students();
  }
}

Produção:

Grade 90

No exemplo acima, acessamos a variável grade da classe pai Teacher do construtor de sua subclasse Students usando a palavra-chave super.

Também temos a função super(), que invoca o construtor de classe do pai. Esta função é usada apenas para chamar os construtores da classe pai. Ambos os construtores paramétricos e não paramétricos podem ser chamados usando a função super(). Se de alguma forma o construtor não invocar um construtor da superclasse explicitamente ao usar a função super(), então o construtor sem argumento da superclasse é chamado pelo próprio compilador Java.

Veja o código abaixo.

class Teacher { // Parent class

  Teacher() // constructor
  {
    System.out.println("Teacher class Constructor");
  }
}
class Students extends Teacher { // subclass
  Students() {
    super();
    System.out.println("Students class Constructor");
  }
}

public class Main {
  public static void main(String[] args) {
    Students s = new Students();
  }
}

Produção:

Teacher class Constructor
Students class Constructor

Criamos uma classe pai Teacher e um construtor de classe pai no código acima, que imprime uma mensagem. Então, uma subclasse Students é estendida de Teacher, que tem um construtor Students() que consiste na função super() para invocar o construtor da classe pai. Então temos a classe principal, que chama a subclasse para executar o programa. A função super() invocou o construtor da classe pai para imprimir a mensagem da classe pai e depois da subclasse.

Artigo relacionado - Java Class