java介面和抽象類的區別

2021-08-05 21:07:58 字數 582 閱讀 4542

抽象類和介面的區別?

1、成員區別:

抽象類:

成員變數:可以是變數,也可以是常量

成員方法:可以抽象,也可以非抽象

建構函式:有

介面:

成員變數:只能是常量

成員方法:只可以抽象

建構函式:沒有建構函式

2、關係區別

類與類:繼承,單繼承

類與介面:實現,單實現,多實現

介面與介面:繼承,單繼承,多繼承

3、設計理念區別

抽象類:抽象類中定義的是該繼承體現的共性功能。

介面:介面重定義的是該繼承體系的擴充套件功能。

比如貓和狗,都是動物。都具有性別、年齡等屬性,同時具有吃飯方法,但是吃的內容不一樣,我們可以把它定義成乙個抽象方法。

但是不是所有的貓都會挖洞,只有狗可以挖洞,對於狗是特有的。

所以可以把性別,年齡和吃飯都定義在動物抽象類中,而把挖洞方法定義成乙個介面,把具有這個功能的才實現這個功能,不是所有都具備的。

Java介面和抽象類區別

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

Java 介面和抽象類的區別

1 抽象類可以有構造方法 介面不可以有構造方法 2 抽象類可以有普通成員變數 介面不可以有普通成員變數 3 抽象類可以包含普通非抽象的方法 介面中所有方法都必須是抽象的,不能有非抽象的普通方法 4 抽象類下的抽象方法訪問型別可以是public protected 但介面的訪問型別必須是public,...

JAVA 介面和抽象類的區別

抽象類就是為了繼承而存在。雖然沒有抽象方法也可以是抽象類,但我覺得這樣是沒有意義的。介面是極度抽象的東西,比抽象類更抽象。打星號了!1.語法層面上的區別 1 抽象類可以提供成員方法的實現細節,而介面中只能存在public abstract 方法 2 抽象類中的成員變數可以是各種型別的,而介面中的成員...