List <Object> listObject = new ArrayList <Object>()?

Pan*_*nde 2 java arraylist

很多时候我看到Arraylist的实例化是以"

List<Object> listObject = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

所以我想知道以这种方式实例化Arraylist的重要性是什么?如果我们实例化ArrayList()会发生什么

ArrayList<Object> listObject = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

NIN*_*OOP 7

List是一个接口,ArrayList类是该接口的特定实现.

List<Object> listObject = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

有了这个,您可以List在将来更改实施.List listObject可以调用List接口中声明的所有方法.在未来,如果你不想的ArrayList实施List,并改变它说LinkedList,你可以这样做:

List<Object> listObject = new LinkedList<Object>();
Run Code Online (Sandbox Code Playgroud)

listObject如果您已声明为listObjectas List接口类型,则不必更改使用的代码,并且不必担心它会破坏其余代码,因为您可能使用了ArrayList此声明特定的内容:

ArrayList<Object> listObject = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

这称为接口编程,而不是实现.