0

我有疑问,以下是代码bufferedwriter

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

的构造函数BufferedWriter只接受引用类型'Writer'抽象类的参数,filewriter上面代码中的''类是如何实例化的?

4

3 回答 3

4

不明白你的意思。

但是你做了new FileWriter(path) 它创建了一个FileWriter实例并FileWriter扩展Writer了它,这使它完全有效。

Writer不是接口,而是可以扩展子类等的抽象类。

接口已实现。并new创建一个对象并返回对该对象的指针引用。引用按值传递给接受对象的BufferedWriter构造函数(将构造函数视为特殊方法) 。Writer

我真的希望我的解释清楚。

于 2012-10-23T11:53:06.877 回答
0

FileWriter 是 Writer,因为它扩展了 Writer 抽象类(尽管不是直接的)。因此,它可以被视为作家。请参见:

http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html

于 2012-10-23T11:54:28.397 回答
0

提示:子类的对象可以类型转换为父类,反之则不行。

在上述情况下,您将获得 Filewriter 类的对象,该对象扩展了 Writer 类,因此有效。

于 2012-10-23T11:56:32.673 回答