Listはインターフェースであり、ArrayListクラスはそのインターフェースの特定の実装です。
List<Object> listObject = new ArrayList<Object>();
Listこれにより、将来的に実装を変更できます。List listObjectインターフェイスで宣言されたすべてのメソッドを呼び出すことができListます。ArrayList将来、 の実装を望まず、Lista と言って変更する場合はLinkedList、それを行うことができます:
List<Object> listObject = new LinkedList<Object>();
asインターフェイス型listObjectを宣言した場合は、を使用するコードを変更する必要はありません。また、この宣言でに固有のものを使用した可能性があるため、残りのコードが壊れる心配もありません。listObjectListArrayList
ArrayList<Object> listObject = new ArrayList<Object>();
これは、実装ではなくインターフェースへのプログラミングと呼ばれます。