/ / Concepto de polimorfismo en java [duplicado] - java, polimorfismo

Concepto de polimorfismo en java [duplicado] - java, polimorfismo

¿Hay alguna diferencia para el código de abajo?

  1. AbstractClass object = new SubClass (); (SubClass es una clase que extendió AbstractClass)

  2. SubClass object = new SubClass ();

En ambos, la subclase de escenarios extendió la clase abstracta e implementó los métodos de la clase abstracta.

Respuestas

1 para la respuesta № 1

Se prefiere el primero: está declarando una variable de un tipo más general, y si surge la necesidad, podría polimorfamente Sustitúyalo por otra instancia de objeto siempre que se extienda desde la misma clase abstracta.

En el libro de GoF declaran este principio como "Programa para una interfaz, no una implementación" (técnicamente AbstractClass No es una interfaz, es una clase abstracta, pero se aplica el mismo principio.)