2012-05-13 83 views

回答

8

在Java中沒有抽象接口這樣的事情(因爲接口默認是抽象的),有抽象類。

抽象類和接口之間的主要區別在於,抽象類是繼承(擴展)的,因爲它是普通的類,所以不能並行擴展其中的兩個,而可以在同一個接口上實現多個接口時間。

3

當使用Java接口時,abstract關鍵字已過時,因爲根據定義java接口是抽象的;它不包含實現,但僅包含定義。

-1

抽象類是至少有一種方法沒有實現的類。這就是爲什麼在寫入方法標題之前強制使用關鍵字「abstract」。

反對通過接口是一個類,其所有方法都是抽象的,這就是爲什麼沒有必要使用關鍵字abstract

+0

奇怪。我反編譯了一個jar並且遇到了公共抽象接口Blah。因此,這個問題。它仍然編譯,這很奇怪。 – Brad

+1

@Brad這真是一個反編譯器的bug;所有的接口總是抽象的。 (據猜測,「抽象」位是在類描述符中設置的,所以反編譯器會在反編譯的輸出中發佈該字,儘管它也是一個接口,所以不需要這樣做。我不知道javac會接受它;猜測它在這裏「大部分是無害的」。) –

2

接口已經是抽象的。記住關鍵術語「抽象」,因爲它涉及到OOP意味着你不能創建它自己的一個實例,你只能用它作爲一個基類,從中你可以從中派生你自己的對象。

接口的本質是抽象的,因爲它們本身不定義任何代碼,但必須由類實現,然後在接口中提供方法的功能。

因此,您可以在界面的前面添加「抽象」一詞,任何事情都不會發生任何不同。即使在java文檔中,作者通過在接口的措辭中加入「abstract」而出錯。

但是你只需要知道所有接口都是抽象的,沒有區別。

Check this link