O polimorfismo você já estava usando antes, quando instância através da interface. Se você quer um método específico da implementação e não da interface, então você terá que usar a implementação mesmo.
instanciando interface? Nao tem como instanciar interface n… O caso é polimorfismo quando vc tem Sobrecarga em tempo de execução ele procura o tipo especifico da variavel entao ele procura pelo Supertipo…e quando vc tem uma sobreescrita de método ele procura primeiro no Subtipo mesmo sua variavel sendo do tipo do “Supertipo”.
[quote=ricardocomp]Olá pessoal,
a minha dúvida principal é em relação a classe Analise
que é abstrata e extrato seco extende da classe Analise.
Analise é abstrata não tem como eu instanciá-la
aí quando eu crio uma análise ExtratoSeco:
Analise analise = Qual instância eu devo usar aqui???;
analise.setAmostra(amostraDao.procurarAmostra(3));
analise.setTipoAnalise(tpAnaliseDao.procurarTipoAnalise(5));
analise.setObservacao("Teste Observações");
analise.setStatus(StatusAnalise.NOVA);
analise.setListaTipoAnalise(null);
analiseDao.salvarAnalise(analise);
Será que alguém pode me dar uma ajuda?
[]'s.
[/quote]
Os métodos que você quer da classe Analise são abstratos?
Se sim, eles terão que ser implementados por qualquer classe concreta (não abstract) que herde de Analise.
Como vc mesmo disse, a classe Analise não poderá ser instanciada pelo fato de ser abstract.
Se a classe Analise declara um método abstrato x, esse método deverá ser implementado por qq classe concreta que herde de Analise. Assim, quando vc fizer:
Analise analise = new ExtratoSeco()
analise.x();
automaticamente você estará usando polimorfismo (à menos que o método x na classe Analise não seja abstrato (tenha sido implementado) e vc esteja usando sobrecarga no método x da classe ExtratoSeco).