【发布时间】:2018-05-13 11:50:52
【问题描述】:
我有点怀疑,这可能是个很蹩脚的问题,但请多多包涵。
我正在检查 FileReader 的源代码。因此,当 FilerReader 创建时,它会构造 FileInputStream。这是代码sn -p
public class FileReader extends InputStreamReader {
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fileName));
}
我的疑问是 FileReader 扩展了 InputStreamReader,这里 FileReader 是 InputStreamReader 的子级,但是当调用 FileReader 的构造函数时,这怎么可能"super(new FileInputStream(fileName));"?
在 InputStreamReader 父类中没有接受 new FileInputStream(fileName) 作为参数的构造函数或方法。
文件输入流具有以下层次结构..
java.lang.Object
java.io.InputStream
java.io.FileInputStream
FileInputStream 和 InputStreamReader 之间似乎没有任何关系..!
谁能帮助我理解这一点? super(new FileInputStream(fileName)); 是如何以及从哪里被调用的?
【问题讨论】:
标签: java