/ / Полиморфизъм концепция в Java [дубликат] - java, полиморфизъм

Концепция за полиморфизъм в Java [дубликат] - java, полиморфизъм

Има ли някаква разлика за кода по-долу

  1. AbstractClass object = new SubClass (); (SubClass е клас, който разширява AbstractClass)

  2. Обект на подклас = нов подклас ();

И в двата сценария подкласът разшири класа "Абстрактен" и приложи методите на Abstract Class

Отговори:

1 за отговор № 1

Първият е предпочитан: декларирате променлива от по-общ тип и ако е необходимо, можете полиморфно заменете го с друг обект, стига той да се простира от същия абстрактен клас.

В книгата GoF те посочват този принцип като "Програма за интерфейс, а не за внедряване" (технически AbstractClass не е интерфейс, той е абстрактен клас, но се прилага същият принцип.)