我有疑问,以下是bufferedwriter
BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));
BufferedWriter
的构造函数只接受引用类型'Writer'抽象类的参数,如何在上面的代码中实例化“filewriter
”类?
答案 0 :(得分:4)
不确定你的意思。
但你做了new FileWriter(path
),它创建了FileWriter
个实例,FileWriter
扩展了Writer
,这使得它完全有效。
Writer
不是界面,而是抽象类,可以扩展或子类等。
接口已实施。 new
创建一个对象,并向该对象返回指针或引用。引用是通过值传递到BufferedWriter
构造函数(将构造函数视为特殊方法),它接受Writer
对象。
我真的希望我的解释清楚明白。
答案 1 :(得分:0)
FileWriter是一个Writer,因为它扩展了Writer抽象类(虽然不是直接)。因此它可以被视为作家。请参阅:
http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html
答案 2 :(得分:0)
提示:子类的对象可以类型转换为父类,但反之亦然。
在上面的例子中,你得到一个类Filewriter的对象,它扩展了类Writer,因此有效。