java中抽象類與介面的區別

2021-09-12 05:38:17 字數 463 閱讀 8302

抽象類和介面都包含類可以由子類繼承實現的成員,但抽象類是對根源的抽象,而介面上是對動作的抽象。抽象類的功能要遠超過介面,那為什麼還要使用介面呢?這主要是由於定義抽象類的代價高(因為每個類只能繼承乙個類,在這個類中,必須繼承或者編寫出其子類的所有共性),因此,雖然介面在功能上會弱化很多,但它只是針對乙個動作的描述,而且可以在乙個類中同時實現多個介面,這樣會降低設計階段的難度。

抽象類和介面的區別主要有以下幾點:

子類只能繼承乙個抽象類,但可以實現多個介面

乙個類實現乙個介面必須實現介面中的所有方法,但抽象類不用

抽象類中的成員變數可以是任意型別的,而介面中的成員變數只能是public static final

介面中只能定義抽象方法,而抽象類中可以定義 非抽象方法

抽象類中可以由靜態方法和靜態**塊,而介面中不可以

介面不可以被例項化,沒有構造方法,但抽象類可以有構造方法

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

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

java中抽象類與介面的區別

抽象類與介面的區別 1.抽象類中可以含有普通方法和變數,而介面中只能含有抽象方法 public abstract修飾 和常量 public final static修飾 不能含有任何實現了的方法。2.抽象類中由構造器,而介面中沒有構造器。3.抽象類只能是單繼承,多實現。而介面是多繼承其他介面,但是不...

Java中抽象類與介面的區別

抽象類 定義方法 abstract class 名稱 組成 建構函式,普通方法,靜態方法,全域性常量,成員,static方法 許可權 可以使用各種許可權定義 子類使用 使用extends繼承乙個抽象類 兩者關係 抽象類可以實現若干介面 介面 定義方法 inte ce 介面名稱 組成 抽象方法,全域性...