为什么可以实例化InputStream类?这不是一个抽象的类吗?

时间:2015-08-17 09:19:15

标签: java inheritance io

我读到InputStream类,它是所有字节流输入类的超类,是一个抽象类,它由其他特定的字节流输入类继承。但是,我还读到 java.lang.System 中有一个对象引用了标准输入流,我们称之为java.lang.System.in和该对象实例化类InputStream。

在Sun API文档中,“in”定义为:

public static final InputStream in

但我知道抽象类无法实例化。我误解了什么吗?

1 个答案:

答案 0 :(得分:1)

变量"在"中,这里只包含一个对象的引用,该对象可以满足"是一个InputStream"的要求。这意味着变量" in"可以保存扩展InputStream的具体类的任何instante,例如AudioInputStream,它满足条件"是一个InputStream"。它与我认为的多态性相关的东西