考慮這個類層次結構:實現接口的類和接口之間是否有任何關係?
Book extends Goods
Book implements Taxable
我們都知道,有一個子類,它的超(IS-A)之間的關係。
問:Book
與Taxable
之間有「is-a」之類的關係嗎?
很好的答案,但你說「是」的也Book
和Taxable
,但之間的關係「是一個」是類之間的關係和接口是不是一類!
考慮這個類層次結構:實現接口的類和接口之間是否有任何關係?
Book extends Goods
Book implements Taxable
我們都知道,有一個子類,它的超(IS-A)之間的關係。
問:Book
與Taxable
之間有「is-a」之類的關係嗎?
很好的答案,但你說「是」的也Book
和Taxable
,但之間的關係「是一個」是類之間的關係和接口是不是一類!
是的。關係完全相同
本書也是應納稅的。
編輯
接口是恰好符合Java的(也可能是C#我不知道)interface
關鍵字的神器。
在OO接口是一類是「提交」的操作集,僅此而已。就像對象類和客戶端之間的契約。
沒有interface
關鍵字的OO編程語言仍然具有類接口OO概念。
「表現得像......」
這就是我所說的。不是東西,而是表現得像某種東西。或者作爲替代品「可以做某事」,但這比行爲更具體。
那麼有「支持的操作」。就我個人而言,我發現「is-a」,「can-do」等助記符非常有用。我更喜歡根據類型允許的方式來考慮,無論它們是專門化現有行爲還是自己實現行爲。類比抽象等類似的東西往往是漏洞。如果您知道接口繼承和實現繼承之間的區別,您可能不需要任何額外的措辭來表達它。
這應該這樣做:
public static boolean implementsInterface(Object object, Class interf){
return interf.isInstance(object);
}
例如,
java.io.Serializable.class.isInstance("a test string")
計算爲真。
的關係會像說:'工具'
這些關係名稱從句子使用的春天。 「書」是 - 一個「貨物」可以寫沒有引號和連字符,它是有道理的。同樣,Book'implements'Taxable可以不帶引號。
什麼是所有的興奮?多個問號和多個感嘆號?
即使Taxable是一個接口,它是否會打擾您,我們可以說Book是Taxable,請冷靜下來。
對於一個類與接口和超類的關係,語言中有不同的關鍵字,但這種關係的概念性質是相同的,因此使用相同的英文術語來描述它是完全合理的。一本書是應稅的,就像一本書是一件好事。爲了使術語更接近,一本書是一個TaxableItem。沒關係。
Book implements Taxable
這裏也Book
和Taxable
之間的關係是
書 '是' 應納稅
Refer this。你可以看到它說
當我們談論繼承最常用的關鍵字將延伸和工具。這些詞將決定一個對象是否是另一個對象類型。
當我們說一個類擴展另一個類時,它具有強大的關係,稱爲「繼承」。這意味着當一個孩子延伸父母時,孩子應該能夠像馬一樣從父類繼承某種動物。馬正在繼承動物的某些屬性。但是當一個類實現另一個類時,那麼子類正在嘗試執行一個契約,不需要繼承任何父母在契約之後的任何東西,爲什麼接口的所有方法默認爲抽象的,但是你可以在類中提供一些具體的方法(用於繼承子類),並且可以使一些抽象很好。
所以對我來說是擴展繼承和接口在實施contract.hope這是令人滿意的
各種各樣的欺騙:http://stackoverflow.com/questions/766106/test-if-object-implements-interface/ 768633 – cgp 2009-06-26 16:59:50
如果我們總結愚蠢,那麼會有一段時間不會有新的問題被允許。 – geowa4 2009-06-26 17:03:15
我沒有投票結束,我只是覺得案件足夠接近,值得關注。 – cgp 2009-06-26 17:10:38