В чем преимущество полиморфизма при использовании интерфейса Collection для создания объекта ArrayList?

Я изучал полиморфизм и понимаю, что он может выполнять динамическое связывание методов, как показано ниже.

Предполагая, что класс Animal является абстрактным классом.

public class AnimalReference
{
  public static void main(String args[])
  Animal ref                 // set up var for an Animal
  Cow aCow = new Cow("Bossy"); // makes specific objects
  Dog aDog = new Dog("Rover");

  // now reference each as an Animal
  ref = aCow; ref.speak();
  ref = aDog; ref.speak();
}

Я использовал для создания экземпляра ArrayList, как:

ArrayList myList = new ArrayList();

Но обычно я полагал, что люди пишут:

Collection myList = new ArrayList();

Так что мое замешательство заключается в том, что является преимуществом объявления в качестве коллекции? Также я не знал, что вы можете иметь "Collection" (интерфейс, а не абстрактный класс) перед "myList".

Почему не стоит просто говорить:

ArrayList myList = new ArrayList();

Я прочитал интерфейс Collection и документы ArrayList Java, а также онлайн-уроки, но все еще не совсем ясно. Может кто-нибудь дать мне какое-нибудь объяснение?

Ответы на вопрос(8)

Ваш ответ на вопрос