2009-06-26 78 views
4

考慮這個類層次結構:實現接口的類和接口之間是否有任何關係?

  • Book extends Goods
  • Book implements Taxable

我們都知道,有一個子類,它的超(IS-A)之間的關係。

問:BookTaxable之間有「is-a」之類的關係嗎?

很好的答案,但你說「是」的也BookTaxable之間的關係「是一個」是之間的關係和接口是不是一類!

+1

各種各樣的欺騙:http://stackoverflow.com/questions/766106/test-if-object-implements-interface/ 768633 – cgp 2009-06-26 16:59:50

+1

如果我們總結愚蠢,那麼會有一段時間不會有新的問題被允許。 – geowa4 2009-06-26 17:03:15

+0

我沒有投票結束,我只是覺得案件足夠接近,值得關注。 – cgp 2009-06-26 17:10:38

回答

8

是的。關係完全相同

本書也是應納稅的。

編輯

接口是恰好符合Java的(也可能是C#我不知道)interface關鍵字的神器。

在OO接口是一類是「提交」的操作集,僅此而已。就像對象類和客戶端之間的契約。

沒有interface關鍵字的OO編程語言仍然具有類接口OO概念。

3

「表現得像......」

這就是我所說的。不是東西,而是表現得像某種東西。或者作爲替代品「可以做某事」,但這比行爲更具體。

5

那麼有「支持的操作」。就我個人而言,我發現「is-a」,「can-do」等助記符非常有用。我更喜歡根據類型允許的方式來考慮,無論它們是專門化現有行爲還是自己實現行爲。類比抽象等類似的東西往往是漏洞。如果您知道接口繼承和實現繼承之間的區別,您可能不需要任何額外的措辭來表達它。

1

這應該這樣做:

public static boolean implementsInterface(Object object, Class interf){ 
    return interf.isInstance(object); 
} 

例如,

java.io.Serializable.class.isInstance("a test string") 

計算爲真。

來自:Test if object implements interface

3

的關係會像說:'工具'

這些關係名稱從句子使用的春天。 「書」是 - 一個「貨物」可以寫沒有引號和連字符,它是有道理的。同樣,Book'implements'Taxable可以不帶引號。

1

什麼是所有的興奮?多個問號和多個感嘆號?

即使Taxable是一個接口,它是否會打擾您,我們可以說Book是Taxable,請冷靜下來。

對於一個類與接口和超類的關係,語言中有不同的關鍵字,但這種關係的概念性質是相同的,因此使用相同的英文術語來描述它是完全合理的。一本書是應稅的,就像一本書是一件好事。爲了使術語更接近,一本書是一個TaxableItem。沒關係。

0
Book implements Taxable 

這裏也BookTaxable之間的關係是

書 '是' 應納稅

Refer this。你可以看到它說

當我們談論繼承最常用的關鍵字將延伸工具。這些詞將決定一個對象是否是另一個對象類型。

2

當我們說一個類擴展另一個類時,它具有強大的關係,稱爲「繼承」。這意味着當一個孩子延伸父母時,孩子應該能夠像馬一樣從父類繼承某種動物。馬正在繼承動物的某些屬性。但是當一個類實現另一個類時,那麼子類正在嘗試執行一個契約,不需要繼承任何父母在契約之後的任何東西,爲什麼接口的所有方法默認爲抽象的,但是你可以在類中提供一些具體的方法(用於繼承子類),並且可以使一些抽象很好。

所以對我來說是擴展繼承和接口在實施contract.hope這是令人滿意的