Como utilizar os métodos de uma Superclasse através de uma subclasse?

04/02/2020

6

Como invocar os métodos get/set de uma Superclasse através de uma subclasse? Qual a sintaxe?

Obrigado!
Responder

Post mais votado

04/02/2020

Tem duas respostas pra essa pergunta, a primeira é que é só utilizar a palavra reservada super, a segunda é que você não pode utilizar getters e setters da classe pai, vamos analisar as duas respostas aqui:

Resposta 1:

public class SuperClasse{
    private int inteiro;
    
    public void setInteiro(int inteiro){
        this.inteiro = inteiro;
    }
    public int getInteiro(){
        return this.inteiro;
    }
}

public class SubClasse extends SuperClasse{
    int inteiro = super.getInteiro(); // A palavra reservada super cria uma instância para a superclasse, ou seja, super = objeto do tipo da superclasse
  
    SubClasse(int integet){
        super.setInteiro(integet); // mesma coisa, é como se estivéssemos fazendo isso: SuperClasse super = new SuperClasse();
    }
}



Resposta 2:

A palavra super é uma INSTÂNCIA da superclasse, ou seja, alterar/pegar um valor da INSTÂNCIA não é a mesma coisa que alterar/pegar um valor da CLASSE, para efeitos de comparação, é a mesma coisa que você pintar seu cachorro de azul, a classe cachorro não terá sua cor mudada para azul, apenas seu cachorro mesmo.
Responder

Mais Posts

06/02/2020

Gustavo Lins

Tem duas respostas pra essa pergunta, a primeira é que é só utilizar a palavra reservada super, a segunda é que você não pode utilizar getters e setters da classe pai, vamos analisar as duas respostas aqui:

Resposta 1:

public class SuperClasse{
    private int inteiro;
    
    public void setInteiro(int inteiro){
        this.inteiro = inteiro;
    }
    public int getInteiro(){
        return this.inteiro;
    }
}

public class SubClasse extends SuperClasse{
    int inteiro = super.getInteiro(); // A palavra reservada super cria uma instância para a superclasse, ou seja, super = objeto do tipo da superclasse
  
    SubClasse(int integet){
        super.setInteiro(integet); // mesma coisa, é como se estivéssemos fazendo isso: SuperClasse super = new SuperClasse();
    }
}



Resposta 2:

A palavra super é uma INSTÂNCIA da superclasse, ou seja, alterar/pegar um valor da INSTÂNCIA não é a mesma coisa que alterar/pegar um valor da CLASSE, para efeitos de comparação, é a mesma coisa que você pintar seu cachorro de azul, a classe cachorro não terá sua cor mudada para azul, apenas seu cachorro mesmo.


Mano...

Depois de 2 dias quebrando a cabeça, descobri que era BUG no meu NetBeans!!!!

É possível acessar os getters e setters da Superclasse!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar