Java中抽象類和介面的區別是什麼

2021-05-16 01:56:24 字數 2069 閱讀 7004

1樓:千鋒教育

介面中的方法只能是定義不可以有實現,而且所有成員預設均為公有的,實現介面時必須實現該介面定義的所有方法。介面可以多重繼承。

而抽象類中則可以存在私有成員,方法允許有實現,繼承抽象後可以不去實現該抽象類的抽象方法

java中抽象類和介面的區別

2樓:育知同創教育

簡單來說,

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

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

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

3樓:被遺忘的腦細胞

這個定義已經比較模糊了

java中抽象類和介面的區別

4樓:青鳥中關村專家

一個類可以有多個介面 只能有繼承一個父類

抽象類可以有構造方法,介面中不能有構造方法。

抽象類中可以有普通成員變數,介面中沒有普通成員變數介面裡邊全部方法都必須是abstract的 抽象類的可以有實現了的方法

抽象類中的抽象方法的訪問型別可以是public,protected 但介面中的抽象方法只能是public型別的,並且預設即為public abstract型別

抽象類中可以包含靜態方法,介面中不能包含靜態方法抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是public static final型別,並且預設即為public static final型別。

5樓:育知同創教育

1.一個類可以實現多個介面 ,但卻只能繼承最多一個抽象類。

2.抽象類可以包含具體的方法 , 介面的所有方法都是抽象的。

3.抽象類可以宣告和使用欄位 ,介面則不能,但介面可以建立靜態的final常量。

4.介面的方法都是public的,抽象類的方法可以是public,protected,private或者預設的package;

5.抽象類可以定義建構函式,介面卻不能。

c#中抽象類和介面的區別

6樓:好程式設計師

c#一、抽象類:

抽象類是特殊的類,只是不能被例項化;除此以外,具有類的其他特性;重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能宣告於抽象類中,且不包含任何實現,派生類必須覆蓋它們。另外,抽象類可以派生自一個抽象類,可以覆蓋基類的抽象方法也可以不覆蓋,如果不覆蓋,則其派生類必須覆蓋它們。

二、介面:

介面是引用型別的,類似於類,更和抽象類有所相似,以至於很多人對抽象類和介面的區別比較模糊。和抽象類的相似之處有三點:

1、不能例項化;

2、包含未實現的方法宣告;

3、派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員(不僅是方法包括其他成員);

另外,介面有如下特性:

介面除了可以包含方法之外,還可以包含屬性、索引器、事件,而且這些成員都被定義為公有的。除此之外,不能包含任何其他的成員,例如:常量、域、建構函式、解構函式、靜態成員。

一個類可以直接繼承多個介面,但只能直接繼承一個類(包括抽象類)。 其實java的介面和抽象類跟c#是差不多的, 他們的特性是相同!別的就是語法的不同了!

java介面和抽象類的區別

7樓:育知同創教育

java中的抽象類是用來抽象子類的通用特性,本質上還是類,可以含有屬性和方法(包括構造方法)。但是與普通類不同的是,它不能夠被例項化,只能被繼承,而且它可以含有抽象方法(沒有具體實現)。子類繼承抽象類時,需要重寫抽象方法。

java中的介面是抽象方法的集合,它沒有構造方法,而且不能含有普通方法(可以含有屬性)。如果一個類實現了某個介面,就必須重寫介面的所有抽象方法。

c抽象類和普通類的區別,java中抽象類和介面的區別?

1.c 沒有abstract.vc提供了一個inte ce 2.抽象類就是指不能例項化的類,因為它們包含了純虛方法。3.虛擬函式是在申明的時候用了關鍵字virtual的類的 非靜態 成員函式 抽象類只能作為基類,提供介面,不能有例項。普通類既可以作為基類,又可以有例項。java中抽象類和介面的區別?...

C中抽象類可以被繼承嗎,java中抽象類可以繼承實體類嗎

可以被繼承,並且抽象 類一般情況就是用來被繼承的。一個類繼承了抽象類,就必須實現抽象類中的所有的抽象方法。抽象類 抽象類往往用來表徵對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。通常在程式設計語句中用 abstract 修飾的類是抽象類。在c 中,含...

java中抽象類的構造方法抽象麼

抽象類可以有構造方法,只是不能直接建立抽象類的例項物件而已。在繼承了抽象類的子類中通過super 引數列表 呼叫抽象類中的構造方法 示例 如下 抽象類和抽象方法什麼關係?抽象類中可能有抽象方法,也可能沒有抽象方法。那位說,就跟沒說一樣,那抽象類和抽象方法都叫抽象,他們必定有關係,那關係是什麼呢?如果...