java中介面和抽象類的區別與聯絡

2021-07-22 16:52:31 字數 934 閱讀 2479

簡單來說,

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,

另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。

還有,介面可以實現多重繼承,而乙個類只能繼承乙個超類,但可以通過繼承多個介面實現多重繼承,介面還有標識(裡面沒有任何方法,如remote介面)和資料共享(裡面的變數全是常量)的作用.

介面和抽象類有什麼區別

你選擇使用介面和抽象類的依據是什麼?

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。

抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說明,他們都是人。

人可以吃東西,狗也可以吃東西,你可以把「吃東西」定義成乙個介面,然後讓這些類去實現它.

所以,在高階語言上,乙個類只能繼承乙個類(抽象類)(正如人不可能同時是生物和非生物),但是可以實現多個介面(吃飯介面、走路介面)。

第一點. 介面是抽象類的變體,介面中所有的方法都是抽象的。而抽象類是宣告方法的存在而不去實現它的類。

第二點. 介面可以多繼承,抽象類不行

第三點. 介面定義方法,不能實現,而抽象類可以實現部分方法。

第四點. 介面中基本資料型別為static 而抽類象不是的。

當你關注乙個事物的本質的時候,用抽象類;當你關注乙個操作的時候,用介面。

抽象類的功能要遠超過介面,但是,定義抽象類的代價高。因為高階語言來說(從實際設計上來說也是)每個類只能繼承乙個類。在這個類中,你必須繼承或編寫出其所有子類的

所有共性。雖然介面在功能上會弱化許多,但是它只是針對乙個動作的描述。而且你可以在乙個類中同時實現多個介面。在設計階段會降低難度的。

java中介面和抽象類的區別

含有abstract修飾符的class即為抽象類,abstract 類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體子類中實現,所以,不能有抽象構造方法...

Java介面和抽象類區別

abstract class inte ce 繼承性單繼承 多實現方法 抽象方法 具體方法 抽象方法 filed 宣告 使用filed欄位 建立的為靜態常量 final static 訪問許可權 public protected private或package public 構造器有 無介面特點 a...

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...