2012-10-23 40 views
0

我有一個疑問,以下是爲BufferedWriterbufferedwriter如何接口作爲參考

BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html")); 

構造函數的代碼只接受引用類型「作家」抽象類,怎麼做的參數「filewriter」類傳入在上面的代碼中實例化?

回答

4

不確定你的意思。

但是你做了new FileWriter(path)它創建了一個FileWriter實例,並且FileWriter擴展了Writer,這使得它非常有效。

Writer不是接口但一個抽象類可以擴展子類

接口被實施。並且new創建一個對象,並返回指針參考到該對象。參考是將值傳遞給BufferedWriter構造函數(將構造函數視爲特殊方法),該構造函數接受Writer對象。

我真的很希望我的解釋清楚。

+1

+1精緻而簡潔的解釋。 :) –

+0

@RohitJain感謝哥們! –

+0

@LewsTherin ..不客氣:) –

0

提示:子類的對象可以是類型轉換爲父類,但反之則不然。

在上面的情況下,您將得到Filewriter類的對象,從而擴展了類Writer因此有效。