問題1:Set 是一個接口 為什麼在API上顯示的是class類
問題2:在代碼第五行 hashset 向上轉型為Set
我能理解一個子對象向上轉型為一個父對象, 但是一個子對象向上轉型為一個接口類型的實例對象 是不是有點問題啊?接口不是不能有實例麼?
關於第一個問題:
可能是叫法或者習慣吧,你心裡知道這是一個接口類就行了。你看接口類嘛,也是類,放class裡面也不算錯。
關於第二個問題:
Set《String》 set = hashset;
這個以等號為分隔符,可以看成兩部分。
等號左邊的是變量類型聲明,表示右邊是一個什麼類型的變量,而不是說右邊是左邊的實力對象。
等號右邊則是這種類型下的某一個具體實現類的具體對象。。
這個意思不是說轉型把hashset轉型成set接口的實現類,而是說,hashset這個對象,是set這種類型的對象。