/ Conceito de polimorfismo em java [duplicate] - java, polymorphism

Conceito de polimorfismo em java [duplicate] - java, polimorfismo

Existe alguma diferença para o código abaixo?

  1. Objeto AbstractClass = new SubClass (); (SubClass é uma classe que estendeu o AbstractClass)

  2. SubClass object = new SubClass ();

Nos dois cenários a subclasse ampliou a Classe Abstract e implementou os métodos da Classe Abstract

Respostas:

1 para resposta № 1

O primeiro é o preferido: você está declarando uma variável de um tipo mais geral e, se necessário, você pode polimorficamente substituí-lo por outra instância de objeto, desde que também se estenda da mesma classe abstrata.

No livro GoF, eles afirmam este princípio como "Programa para uma interface, não uma implementação" (tecnicamente AbstractClass Não é uma interface, é uma classe abstrata, mas o mesmo princípio se aplica.