Como utilizar os métodos de uma Superclasse através de uma subclasse?
Como invocar os métodos get/set de uma Superclasse através de uma subclasse? Qual a sintaxe?
Obrigado!
Obrigado!
Gustavo Lins
Curtidas 0
Melhor post
Sadasd
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.
GOSTEI 1
Mais Respostas
Gustavo Lins
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.
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!
GOSTEI 0