疑惑來源
如下代碼倔丈,可以看到在LinkedList的一個含參構造函數(shù)中調用了this(),這里的調用this()相當于調用默認無參構造函數(shù)LinkedList()
//默認構造函數(shù)
public LinkedList() {
}
//通過一個集合初始化LinkedList状蜗,元素順序有這個集合的迭代器返回順序決定
public LinkedList(Collection<? extends E> c) {
this();//這里的this()到底有什么作用
addAll(c);
}
疑惑內容
然而無參構造函數(shù)中什么也沒做需五,那為什么還要這么調用呢?這樣做有什么好處轧坎?
解析
- 好處1:減少編譯器添加super()方法的數(shù)量警儒,這算好處么?
眾所周知眶根,如果不在子類的構造函數(shù)中顯示調用父類的構造函數(shù)【即:super()方法】,那么編譯器會自動給子類構造函數(shù)添加super()方法边琉,通過this()的調用属百,這樣就只用給默認構造函數(shù)LinkedList()添加super()方法了 - 好處2:好處1都很牽強。变姨。。求大神分析分析這么用到底有好處沒有。