2013-06-13 25 views

回答

13

您不能實例化接口或抽象類,因爲它會違背面向對象的模型。

接口代表合同 - 承諾接口的實現者將能夠完成所有這些事情,履行合同。

抽象類是一個類似的想法,因爲它們代表一個未實現的契約,一個承諾能夠做事,除了不同於接口,他們有一些函數或字段已定義但需要填寫才能使用。

簡單地說,在一個好的面向對象的程序中,你永遠不應該想要實例化一個抽象類或接口。如果你這樣做,設計可能是錯誤的。 (匿名類實際上是非抽象的實例化,只是它們不需要被賦予一個名稱,所以它們看起來是'原始接口',但它們實際上是沒有名稱的接口的實現。這是我的理解,至少)

+2

+1這樣一個很好的解釋。 – Ranjit

+0

至少對你來說,對我來說太棒了。+1 – Elltz

3

這是一個沒有更深層次概念的基本解釋。

  • Interface沒有實現的方法,所以沒有目的的實例爲「無」時會發生調用一個方法
  • Abstract類可以有abstract方法的聲明,這就像沒有實現一個接口方法。
1

您不能實例化接口或抽象類,因爲它們的某些方法可能沒有任何定義。

+0

可能會澄清*無*將帶有界面。 – ChiefTwoPencils

相關問題