java的泛型集合求大神指教

    animal ani=new animal("欧欧", "欧瑞娜");
    animal ani2=new animal("丫丫", "拉布拉多");
    animal ani3=new animal("菲菲", "拉布拉多");
    animal ani4=new animal("美美", "欧瑞娜");
    List list=new ArrayList();
    list.add(ani);
    list.add(ani2);
    list.add(ani3);
    list.add(ani4);

为什么new ArrayList();
求大神指教

List是一个接口,不能实例化,需要实例化一个它的实现类ArrayList或者LinkedList。

如果楼主学过接口那很好理解的,就是因为ArrayList是List接口的实现类,也就是List规定要干什么,由ArrayList来具体执行,领导者(List)是不会自己动手的,都是有小弟(ArrayList)来做的,能理解么?