1

の違いは何ですか

LinkedList<String> l1 = new LinkedList<String>();
List<String> l2 = new LinkedList<String>();

タイプにはメソッドがあるのに、 タイプにはメソッドl2がないのはなぜですか? どちらもオブジェクトを保持しているのに?ゴスリングの「Javaプログラミング言語」から読んだこととは反対に、オブジェクトはあなたが作ったものになると述べていますが、この場合、リスト型であってもwithにしましたaddFirstl1addFirstLinkedListLinkedListnew LinkedList()

その場合、どのように適切に宣言する必要がありますか?

Collection<String> c = new LinkedList<String>();
List<String> c = new LinkedList<String>();
LinkedList<String> c = new LinkedList<String>();
4

3 に答える 3

0

リスト l2 = 新しい LinkedList();

これは、 のインスタンスのみを取るメソッドがある場合に便利ですSuperClassSubClass は である ためSuperClass、 のインスタンスを使用しSubClassて として扱うことができますSuperClass

それがポリモーフィズムです。これにより、コードの残りの部分を壊すことなく、クラスの内部の実装を変更できます。

于 2013-07-08T10:51:01.510 に答える