这2个实例化集合类对象有什么区别?

Collection list = new ArrayList<>();

ArrayList list = new ArrayList<>();

的区别是什么?

第一次回答问题,这是多态吧

  第一个是定义的抽象父类类型,并将一个具体的子类的实例对象赋值给它;第二个就直接定义的是一个具体的类型并赋值为具体的实例。区别就是变量是抽象类型还是具体类型,在编程中有一种面向抽象编程的原则就是说的第一种赋值方式的。