Was ist der Vorteil des Polymorphismus beim Erstellen eines ArrayList-Objekts mithilfe der Collection-Schnittstelle?

Ich habe Polymorphismus studiert und verstehe, dass er dynamische Methodenbindungen wie unten ausführen kann.

ngenommen, die Klasse Animal ist eine abstrakte Klass

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();
}

Ich habe eine Instanz von ArrayList wie folgt erstellt:

ArrayList myList = new ArrayList();

Aber normalerweise habe ich gedacht, dass die Leute schreiben:

Collection myList = new ArrayList();

Also meine Verwirrung ist, was ist der Vorteil der Deklaration als Sammlung? Außerdem wusste ich nicht, dass Sie "Collection" (eine Schnittstelle, die keine abstrakte Klasse ist) vor "myList" haben können.

Warum ist es nicht ratsam, einfach zu sagen:

ArrayList myList = new ArrayList();

Ich lese Collection Interface und ArrayList Java-Dokumente sowie Online-Tutorials, aber immer noch nicht ganz klar. Kann mir jemand eine Erklärung geben?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage