私はJavaに比較的慣れていないので、コレクションフレームワークを始めたばかりです。ArrayList
私は人々がそれを宣言する2つの方法に遭遇しました。たとえば、ArrayList
of String
s を宣言するには:
List<String> l = new ArrayList<String>();
また
ArrayList<String> al = new ArrayList<String>();
これら2つのどちらを使用する必要があり、それらの違いは何ですか?
呼び出される実際のメソッドは実行時に決定されるため、呼び出されるメソッドはすべてArrayList
クラスのみになりますが、最初の宣言は呼び出すことができるメソッドを制限します。
最初の方法は、「インターフェースへのコーディング」と呼ばれていると聞きました。任意のメソッドは変数を使用して呼び出されるため、インターフェイスl
によって提供されるメソッドのみを呼び出すことができますが、2 番目の例では、クラスだけでなくクラスによって提供されるすべてのメソッド ( など) も呼び出すことができます。そもそも、なぜ人々は最初の宣言を使用するのでしょうか??List
List
Object
finalize()
wait()