JAVA 介面和抽象類的區別

2021-09-24 03:39:07 字數 502 閱讀 8699

抽象類不能被例項化(初學者很容易犯的錯),如果被例項化,就會報錯,編譯無法通過。只有抽象類的非抽象子類可以建立物件。

抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。

抽象類中的抽象方法只是宣告,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能。

構造方法,類方法(用 static 修飾的方法)不能宣告為抽象方法。

抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。

本質:從設計層面來說,抽象是對類的抽象,是一種模板設計,介面是行為的抽象,是一種行為的規範

區別:1.介面的方法預設是public,所有方法在介面中不能有實現,抽象類可以有非抽象的方法

2.介面中的例項變數預設是final型別的,而抽象類中則不一定

3.乙個類可以實現多個介面,但最多只能實現乙個抽象類

4.乙個類實現介面的話要實現介面的所有方法,而抽象類不一定

5.介面不能用new例項化,但可以宣告,但是必須引用乙個實現該介面的物件

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 成員區別 抽象類 成員變數 可以是變數,也可以是常量 成員方法 可以抽象,也可以非抽象 建構函式 有 介面 成員變數 只能是常量 成員方法 只可以抽象 建構函式 沒有建構函式 2 關係區別 類與類 繼承,單繼承 類與介面 實現,單實現,多實現 介面與介面 繼承,單繼承,多繼承...