ArrayList を例に挙げます
文法の違い:
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
インターフェースの観点から:
- List はインターフェイス (抽象クラス) であるためインスタンス化できませんが、
ArrayList はその実装クラスとしてインスタンス化できます。 - List オブジェクトとして宣言されている場合、ArrayList 内のカスタムおよび固有のメソッドとプロパティは使用できません。
- List オブジェクトとして宣言すると、コードが標準化され、コードのリファクタリングが容易になります。ArrayList オブジェクトまたは LinkedList オブジェクトを受け入れることができ、変更時に変更する必要があるのは 1 行のみで、List オブジェクトを使用する他のメソッドとプロパティは保持できます。
ヒント:
ArrayList<E>
: 一般的な概念、E は任意のタイプにすることができます。確認内容は変更できません。
利点: 安全性が向上し、コンパイラーが型が安全かどうかをチェックし、可読性が向上し、必須の型変換が回避されます。