2016-12-23 9 views
-1

通常、宣言型はインタフェース型であり、初期化部は実装型です。 List<String> list = new ArrayList<String>ArrayList<String> list = new ArrayList<String>の間の差異は何ですか?多形性の違いは何ですか?リスト<String>リストと新しいリストとの間の相違点<String>とArrayList <String> list = new ArrayList <String>?

+2

ヒント:この回答を見つけるまでに10秒以下かかりました。次回は、先の研究をしてみてください** **。 – GhostCat

答えて

0

Listはインターフェイスであり、ArrayListはその実装クラスです。 抽象的であるためインタフェースのオブジェクトを作成することはできませんが、Listリスト以外のインタフェースの参照を作成することはできます。 このリファレンスを使用して、ArrayListのメソッドを呼び出すことができます。

+0

これは質問に答えません。 'List <..>'または 'ArrayList <..>'を変数型として使うことの違いには答えません。 – Tom

1

重要な相違はありません。しかし、あなたはこの

void doSomething(List list) 
{} 

のようなものを使用する場合は、Listクラスを拡張するすべてのオブジェクトを使用することができますが、この 無効のdoSomething(ArrayListのリスト) {} のようなものを使用する場合にのみ、ArrayListのオブジェクトを使用することができますし、そのサブクラスです。

+0

ありがとう、私はインターフェイスを使用する場合、将来のコード編集の面で簡単ですか?(例:リストリスト=新しいArrayList (); –

+0

はい、抽象化はOOPの原則の1つです! –

+0

私は例を挙げることができますか? ;) –

関連する問題