Olá, encontrei vários tópicos desse assunto aqui no fórum, e em outros locais. Porém, ainda não encontrei exemplos mais concretos de quando utilizar um ou o outro modo de instanciar um objeto.
Exemplo:
A SuperClasse Letra é estendida na SubClasse A* e na SubClasse *B.
A* e *B são filhas de Letra.
Posso fazer assim:
Letra a= new A();
ou
A* a = new *A();
Vi exemplos falando que isso seria útil num método que apenas aceitasse objeto tipo Letra como parâmetro.
Porém, mesmo criando o objeto da segunda maneira, ainda assim A* estenderia (seria filha de) Letra, e *A poderia ser usada nesse método.
Também não podemos acessar os métodos das subclasses, se colocarmos como referência a superclasse.
Em que situações do cotidiano, numa aplicação real, que utilizamos o primeiro modo?
SuperClasse sb = new SubClasse ();
Se alguém puder me indicar algum código no GitHub ou similar que use muito desse recurso, agradeceria muito.
Muito obrigado :)
Obs: os asteriscos foram erros de formatação.