java - 接口(interface)如何作为引用传递

标签 java interface reference

我有一个疑问,以下是bufferedwriter的代码

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

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

最佳答案

不知道你的意思。

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

Writer 不是一个接口(interface),而是一个抽象类,可以扩展子类化等。

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

我真的希望我的解释能够清楚地表达出来。

关于java - 接口(interface)如何作为引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029800/

相关文章:

java - Hadoop JobClient.runJob : Cannot initialize cluster - Misleading error message(? ) 和建议的解决方案

java JLayeredPane 如何在 Window builder 生成的另一个面板前面添加 JPanel

java - Netty Websocket

oop - 帮助非 oop 开发人员了解基于接口(interface)的编程的最佳比喻是什么?

java - 实现接口(interface)时会不会出现 "not override a concrete method ..."编译时错误?

C#:指向多个整数的引用/指针数组

java - 如何检查 Java Web Start 应用程序是否会在证书过期后继续工作

java - 调用通用接口(interface)方法不起作用

encoding - 字符编码的最佳资源

c++ - std::vector 插入对象的拷贝或引用?