在我遇到的一個當前問題中(printing a file to a physical printer in Java)我一直在通過代碼運行,就像瘋子試圖從每個使用的類的javadoc中吞噬任何有用的遺漏信息。初始化接口?
現在,我從以前的問題中抽出了很多這樣的代碼,所以我沒有寫下自己。我注意到的問題是,我抓住的代碼正在初始化一個對象,比如說「SimpleDoc」,它實現了一個接口(Doc)並將其分配給該接口?!
小的代碼片斷:
Doc mydoc = new SimpleDoc(textStream, flavor, null);
現在據我被帶到理解Java中,我們創建對象。我熟悉繼承,並且熟悉使用接口允許類「繼承」多個超類的技巧。
但這只是不正確。你可以創建一個實現接口的類,這對我來說很好。但是,當創建接口並將對象縮小到接口時發生了什麼?當我準確地引用mydoc時,我在訪問什麼?
mydoc是實現「Doc」接口的對象的引用。在這種情況下,該接口用於標識可以通過mydoc引用變量調用的方法。請注意,變量(mydoc)仍然是對象的引用。 – DwB 2012-01-12 20:54:56