2011-03-11 121 views
0

可能重複:
Use of Java [Interfaces/Abstract classes]抽象類和接口在Java中

作爲新到Java,是什麼在你的項目和一個接口使用抽象類之間的區別是什麼?

+0

您是否曾檢查Google或首先搜索此網站?如果是這樣,具體是什麼讓你感到困惑?例如,對這個網站的快速檢查顯示,數百個帖子與你的帖子完全相同(或者實際上更好 - 更詳細的問題),比如:http://stackoverflow.com/questions/2869222/use-of-java -interfaces-abstract-classes – 2011-03-11 13:52:13

+6

這是許多其他許多問題的重複,請參閱右側的「相關」列。 – razlebe 2011-03-11 13:52:34

+0

我不認爲這是一個確切的重複,因爲這是一個關於使用的一般問題。在相關專欄中的其他問題大多數是「我有bla bla bla ...你有什麼建議,爲什麼」 – Chris 2011-03-11 14:01:32

回答

1

如果你看它缺乏技術,但如何可以或者應該使用它:

接口的主要優點是,只要你喜歡一個類可以實現多個接口。相比之下,一個類只能擴展一個其他類。 (在java中沒有多重繼承)。

通過使用接口,您可以將單個「功能」添加到您的類中。因此,您經常會看到接口名稱以「able」結尾。比如「Serializable」或「Parceable」或類似的東西。

抽象類可以是一個普通類,如果被迫擴展。例如像「車輛」。你不能使用「車輛」,因爲沒有隻有「車輛」的東西存在。因此,您必須實施延長該課程的課程,該課程可能是汽車或小船....

1

接口不包含任何實現。它只是描述了實現接口的類如何與其他類進行交互。

抽象類可以包含一些方法,它們被實現並定義抽象方法,類似於接口。

類和接口的使用應該不被視爲整個項目,而是被視爲特定的地方。

3

您可以從一個類一次只能繼承,使用「擴展」的關鍵字,但可以實現多個接口,只要你想,使用「工具」關鍵字。另外,抽象類可以同時具有抽象和具體(已實現)的方法以及變量。

0

在簡單的engilsh中,接口是一個類,其中所有方法都是抽象的但不可實現(在接口中)。只有那些接口的子類(它們不是抽象類)必須實現抽象方法

抽象類有一些方法實現,但可以包含必須由具體子類實現的抽象方法。

維基百科指出(interface)

在面向對象的語言的術語 「接口」通常用於定義不包含數據 但公開定義爲 方法行爲的抽象 類型。一個具有對應於該接口的所有 方法的類被稱爲實現該接口。此外,一個類 可以實現多個接口,因此 可以在同一時間具有不同的類型。

百科:(Abstract Class)

一個抽象類,或抽象基類 (ABC),是不能被實例化 一類。如果語言支持 繼承,這樣的類只有 有意義。一個抽象類是 設計只作爲從 可以派生的子類的父類。 抽象類經常被用來代表抽象概念 或 實體。 摘要類的不完整特徵然後由 共享一組子類,其中添加 不同的缺失 件的變體。

在java中你擴展類/抽象類,但你實現的接口。