Galera queria saber se é possível uma classe Pai ter acesso aos métodos das classes filhas?
Vlw
Com Herança em Java o acesso é feito apenas de baixo para cima.
Leia sobre: [Resolvido] Pegar um metodo da subclasse
Ai você encontra uma saída.
Se o modificador de acesso dos métodos das classes filhas permitir, sim.
Mas não é uma boa prática você ter uma classe que referencie subclasses dela mesma.
O que exatamente você quer fazer?
Existe um padrão de projeto chamado template method onde a classe base é abstrata, define alguns métodos abstratos e faz chamada a estes métodos. Como a implementação destes métodos estará em uma subclasse concreta, pode-se dizer que a classe pai está invocando um método da classe filha.
Existe um padrão de projeto chamado template method onde a classe base é abstrata, define alguns métodos abstratos e faz chamada a estes métodos. Como a implementação destes métodos estará em uma subclasse concreta, pode-se dizer que a classe pai está invocando um método da classe filha.
Pode me dar um exemplo?
Entendi, vi alguns exemplos anteriores de uma classe Pai instanciando a Filha, mas não conseguir entender qual o real propósito de se fazer isso pois a classe Pai não tem acesso aos atributos e nem métodos da filha.
Ex: Pai p = new Filha();
Qual seria o propósito de se fazer isso?
Neste caso é possível declarar um objeto de tipo diferente da variável desde que o objeto atenda a regra do IS-A. Filha IS-A Pai? (IS-A = herança ou implementação). Se sim, é possível que a variável seja uma superclasse ou interface e o objeto seja uma subclasse ou uma implementação da interface.
Ainda nesse raciocínio, o cenário de Filha f = new Pai() já daria erro, pois não herda ou implementa um filho.
É importante ficar ligado para métodos e variáveis sobrescritos nesta situação, pois o resultado em tempo de compilação/execução pode ser diferente.