List list=new ArrayList()とArrayList arrayList=new ArrayList()の違い

1657 ワード

List list=new ArrayList()とArrayList arrayList=new ArrayList()の違い
初めての勉強ですが、間違っていますので、よろしくお願いします.
Listはインタフェースであり、ArrayListはListの実装クラス(ArrayListはListインタフェースを継承するものではなく、Listインタフェースを実装するもの)Listはインタフェースであり、インスタンス化できない(インタフェースは抽象クラスである)ので、その実装クラスでインスタンス化しなければならない.
1.ネット上では、
List list = new ArrayList();       ArrayList         List。      List   ,  ArrayList   List        ,       。(  )
ArrayList list1 = new ArrayList();
List list2 = new ArrayList<>();
list1.trimToSize();
list2.trimToSize();//  
  List list2 = new ArrayList<>(); ,list2  List         ,        ArrayList         。

2.また、リストがArrayListと同じ属性(int iなど)を有し、同じ方法(void f()など)を有する場合、a.iはListのiを呼び出し、a.f()はArrayListのf()を呼び出す.(証明の仕方がわからない)
なぜArrayList alist=new ArrayList()ではなくList list=new ArrayList()を使うのか
ある人はこう言いました.
問題はListインタフェースに複数の実装クラスがあることです.今あなたが使っているのはArrayListです.いつか他の実装クラスに変える必要があるかもしれません.LinkedListやVectorなどです.このとき、この行を変更すればいいです.List list=new LinkedList()です.他のlistを使用した場所のコードは変更する必要はありません.ArrayList alist=new ArrayList()を使用し始めたとすると、特にArrayListを使用してクラス固有の方法と属性を実装した場合、変更されます.
ArrayList list1 = new ArrayList();
List list2 = new ArrayList<>();
		
List list2 = new LinkedList();//  ;  rename list2
list2 = new LinkedList();//  
??