我有一個疑問,以下是爲BufferedWriter
的bufferedwriter
如何接口作爲參考
BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));
構造函數的代碼只接受引用類型「作家」抽象類,怎麼做的參數「filewriter
」類傳入在上面的代碼中實例化?
我有一個疑問,以下是爲BufferedWriter
的bufferedwriter
如何接口作爲參考
BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));
構造函數的代碼只接受引用類型「作家」抽象類,怎麼做的參數「filewriter
」類傳入在上面的代碼中實例化?
不確定你的意思。
但是你做了new FileWriter(path
)它創建了一個FileWriter
實例,並且FileWriter
擴展了Writer
,這使得它非常有效。
Writer
不是接口但一個抽象類可以擴展或子類等
接口被實施。並且new
創建一個對象,並返回指針或參考到該對象。參考是將值傳遞給BufferedWriter
構造函數(將構造函數視爲特殊方法),該構造函數接受Writer
對象。
我真的很希望我的解釋清楚。
FileWriter是一個Writer,因爲它擴展了Writer抽象類(儘管不是直接的)。因此可以將其視爲作家。請參閱:
http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html
提示:子類的對象可以是類型轉換爲父類,但反之則不然。
在上面的情況下,您將得到Filewriter類的對象,從而擴展了類Writer因此有效。
+1精緻而簡潔的解釋。 :) –
@RohitJain感謝哥們! –
@LewsTherin ..不客氣:) –