我試圖提高我對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