Como utilizar os métodos de uma Superclasse através de uma subclasse?
04/02/2020
0
Como invocar os métodos get/set de uma Superclasse através de uma subclasse? Qual a sintaxe?
Obrigado!
Obrigado!
Gustavo Lins
Curtir tópico
+ 0
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:
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.
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.
Sadasd
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:
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.
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
Clique aqui para fazer login e interagir na Comunidade :)