抽象類和介面的區別?
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 抽象類中的成員變數可以是各種型別的,而介面中的成員...