Fórum Como utilizar os métodos de uma Superclasse através de uma subclasse? #607925
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
Gostei + 1
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)