我试图提高我对IO的理解。据我了解,'in'是System类的成员变量。system.in包含什么内容?
我相信这是参考变量由于其类型是如在http://docs.oracle.com/javase/7/docs/api/java/lang/System.html
提到“的InputStream”然而,“的InputStream”是一个抽象类,因此它不能被实例化。
我已经做了一些测试并得出结论,尽管您不能实例化抽象类,但可以创建抽象类类型的引用变量。所以我的第一个问题是这个目的,如果没有,为什么它被允许?
Example:
abstract class Someclass {
;
}
Someclass variable; // A field member of some another class. What purpose could it serve?
因此,这里是我的第二批相关问题。 system.in变量包含(或引用)是什么?它肯定不是
InputStream in = new InputStream();
因为它是一个抽象类。这是否意味着它有一个子类的实例?如果是这样,哪一个?有没有办法在线查看现场常用变量和方法的“主体”?
感谢您的帮助。
编辑:重复的建议无法解决问题。我唯一能理解的是InputStream可能是用BufferedStream类实例化的。
下面的问题仍然站立:
1)是否有办法在网上观看现场流行的变量和方法的“体”? 2)为什么允许抽象类的引用以及它的目的是什么?
3)和新的问题,即上涨的建议序列 - 这是为什么呢InputStream in = new BufferedStream()
代替BufferedStream in = new BufferedStream()
'System.in'引用InputStream'的实现,它通常从键盘输入外部世界的输入,但输入可以通过其他方式输入(通常称为stdin) – MadProgrammer
[什么是抽象类的目的是什么?](http://stackoverflow.com/questions/2288467/what-is-the-purpose-of-abstract-classes) – Andreas
[System.in属于哪个输入类,以及为什么?](http://stackoverflow.com/questions/32051872/what-input-class-does-system-in-belongs-to-and-why) – ApproachingDarknessFish