tenho duas classes Fruta e Laranja, na qual Laranja é classe filha de Fruta. Laranja tem uma variável Suco suco1 que vem de uma terceira classe Sucos que não herda nada de Frutas.
Na classe Laranja, eu declarei os getters e setters de suco1.
Agora eu gostaria de saber como eu posso chamar o método getSuco1( ) para classe Fruta.
pois quando eu faço algo do tipo "System.out.println(“O suco " + this.getSuco1( ) + " é bom.”), ele acusa que eu estou tentando fazer um método estático de um método não-estático.
Dica: em vez de descrever o código, é melhor colocar o próprio código aqui, assim a gente pode ver de fato o que está acontecendo (em vez de tentar imaginar e adivinhar).
É porque essa dúvida não é de um código especifico. Eu já esbarrei nesse problema várias vezes e ainda não consegui entender como eu posso chamar um getter de uma classe que filha para a classe mãe.
Se o método só existe na classe filha, então a classe mãe não tem como acessar.
public class Mae {
// etc...
}
public class Filha extends Mae {
// esse método não existe na classe Mae, só aqui na Filha
public void metodoQueSoExisteNaFilha() {
// etc...
}
}
Filha f = new Filha();
f.metodoQueSoExisteNaFilha(); // ok, método existe na classe filha
Mae m = new Mae();
// ERRO! Pois "metodoQueSoExisteNaFilha" só existe na classe filha
m..metodoQueSoExisteNaFilha();
Detalhe: é isso mesmo que você quer saber? Foi o que eu entendi da sua dúvida (se não foi, sugiro que coloque um código de exemplo explicando o que você quer fazer).
A ideia seria mais ou menos essa. Eu queria saber se é possível e como eu poderia chamar aquela informação específica.
public class ContaPagar extends Conta {
Fornecedor fornecedor;
public Fornecedor getFornecedor( ) {
return this.fornecedor;
}
public void setFornecedor(Fornecedor fornecedor) {
this.fornecedor = fornecedor;
}
}
public class Conta {
//etc... variáveis como descricao, valor... e seus getters e setters
System.out.println("A conta " + this.getDescricao( ) + " do Fornecedor " + ??? ...)
}