これはしばらく私を悩ませていて、まだ受け入れ可能な回答を見つけることができませんでした。いずれかのサブクラスであるか、私はこれが今だけ私にリストのメソッドへのアクセスを与えるのArrayListの面ではタイプ、すなわちJava変数型とインスタンス化
List list = new ArrayList();
Vehicle car = new car();
として親クラスやインターフェイスを使用する理由のインタフェースを実装するクラスを仮定。 Listをパラメータとして受け取るメソッドがある場合、ArrayListはListであるため、ListまたはArrayListを渡すことができます。メソッド内では明らかにListメソッドしか使用できませんが、Listという型を宣言する理由はわかりません。私が見る限りでは、コード内のどこかで使用できるメソッドに制限されています。
List list = new ArrayList()がArrayList list = new ArrayList()より優れているシナリオは、大変ご満足いただけます。
重複? http://stackoverflow.com/questions/3768869/use-interface-or-type-for-variable-definition-in-java – Rich