В чем преимущество полиморфизма при использовании интерфейса 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, а также онлайн-уроки, но все еще не совсем ясно. Может кто-нибудь дать мне какое-нибудь объяснение?