关于java:为什么可以实例化InputStream类?

Why can the InputStream class be instantiated? Isn't it an abstract class?

本问题已经有最佳答案,请猛点这里访问。

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

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

1
public static final InputStream in

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


这里的变量"in"只保存对一个对象的引用,该对象可以满足"is a inputstream"的要求。这意味着变量"in"可以容纳扩展输入流的具体类的任何瞬间,例如audioinputstream,它满足条件"is a inputstream"。我认为这与多态性有关。