接口如何作为参考传递

时间:2012-10-23 11:51:30

标签: java interface reference

我有疑问,以下是bufferedwriter

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

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

3 个答案:

答案 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,因此有效。