我有一个疑问,以下是为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 ..不客气:) –