開始之前我有小代碼來更好地理解問題。如你所見,如果我使用Interface類型對象來調用class(Circle)方法(kill),我是不允許的。這是有道理的,因爲kill方法既不在接口中定義也不實現。爲什麼列表總是使用ArrayList方法?
我的問題是,如果這是一種情況,當我們以下面提到的方式使用List時,爲什麼它總是說List使用ArrayList方法...?技術上它不應該按照我上面的例子。
List myList = new ArrayList();
如果不是,那麼誰的方法列表使用..?因爲List定義的方法需要在實現List的類中的某處實現。沒有..?
檢查下面的答案中的第一個評論,以及它也說同樣的事情。 What is the difference between List and ArrayList?
有人可以想出更清晰的圖片,它的工作原理是什麼?以上類型片段中使用的方法列表是什麼?
ArrayList實現列表。不是相反 – efekctive
@efekctive ...好的..如果它實現...它定義的位置。或者當我們以這種方式使用時會自動實現..? – LearnJava
List類是Java語言的一部分。它是一個具有方法的接口(但實際上並沒有做任何事情 - 它們是任何實現類的合同)。 ArrayList是List接口的一個實現。它具有實際工作的方法。 – AHungerArtist