DEV Community

Usando super para acessar membros da superclasse

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();
    }
}

Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)