我有疑问,以下是代码bufferedwriter
BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));
的构造函数BufferedWriter
只接受引用类型'Writer'抽象类的参数,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 类,因此有效。