2019-01-19

在很長一段時間裏我就糾結啊 List list=new ArrayList()一個思考中。

1、首先解釋爲什麼可以這樣寫?

之前我一度認爲 類名 對象=new 類名()纔是一種正確之道, 我就覺得List是接口,ArrayList 是List的實現類。所以 認爲List list=new ArrayList()是錯的。

java提高篇之理解java的三大特性——多態 - ImportNew

這篇文章講的多態則是答案:父類是抽象類或者接口時候,不能實例化,只能運用向上轉型。

2、這樣List list=new ArrayList的優點

(1)改動小,當這樣寫ArrayList list=new ArrayList();則可以調用ArrayList獨有的方法和屬性,當你Arraylist不合適,LinkList更合適時候,或許又由於你調用ArrayList 特有的方法和屬性,那程序改動則大;若你寫的List list=new ArrayList()時候,list只能使用ArrayList中已經實現了的List接口中的方法,ArrayList中那些自己的、沒有在List接口定義的方法是不可以被訪問到的。則改動時只需要改這一行,因爲ArrayList  LinkList必定實現List所有的抽象方法的。

(2提高程序寬闊度,以後好維護。

List list = new ArrayList()爲何父類引用指向子類對象(多態) - Jae_Peng的博客 - CSDN博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章