詳述抽象類與介面區別

2021-10-04 09:37:16 字數 2285 閱讀 3495

抽象類父類:

package dubhe;

//3、乙個類中如果有抽象方法,那麼這個類一定是抽象類,否則語法錯誤(abstract 抽象的)

public

abstract

class

mammal

子類:

package dubhe;

public

class

whale

extends

mammal

}

test類:

package dubhe;

public

class

test

}

————————————————————————

介面

1、如果乙個原始檔中的方法全是抽象方法,則可以定義為介面

2、介面沒有構造方法

3、介面中的抽象方法預設public abstract,所以可以忽略不寫

4、乙個介面可以繼承多個其他介面

5、規範:介面名以i開頭

6、介面中的變數預設是 public static final

7、介面中抽象方法使用 implements

8、實現類實現介面的同時可以繼承介面中的常量

9、乙個類如果不實現介面中所有方法,則該類必須為抽象類

10、乙個類可以實現多個介面

介面類:

//1、如果乙個原始檔中的方法全是抽象方法,則可以定義為介面

//2、介面沒有構造方法

//3、介面中的抽象方法預設public abstract,所以可以忽略不寫

inte***ce

iainte***ce

ib//4、乙個介面可以繼承多個其他介面

//5、規範:介面名以i開頭

//6、介面中的變數預設是 public static final

public

inte***ce

ijiekou

extends

ia,ib

實現類:

//7、介面中抽象方法使用 implements

//8、實現類實現介面的同時可以繼承介面中的常量

//9、乙個類如果不實現介面中所有方法,則該類必須為抽象類

//10、乙個類可以實現多個介面

public

class

shixian

implements

ijiekou

/*,list*/

@override

public

void

breathe()

}

test類:

public

class

test

}//1、乙個類如果沒有實現介面中所有方法,則該類必須為抽象類

//2、介面中不能定義具體東西

//3、從jdk8之後可以有具體方法,但必須為 static 或 sefault

抽象類與介面的區別:

1、定義:抽象類 abstract 介面 inte***ce

2、構造方法:抽象類有構造方法 介面沒有構造方法

3、繼承:抽象類只能單繼承 介面可以繼承多個介面

4、實現:抽象型別extends 介面 implements

5、成員變數:抽象類可以定義任何合法的成員變數 介面只能定義public static final的變數,即常量

6、方法:抽象類可以定義任意合法方法 介面中只能定義抽象方法,jdk8.0+可以定義多個static或default修飾的具體方法

抽象類與介面區別

抽象類 抽象類無法例項化 即不能new 使用抽象方法,該方法是只需宣告不需要實現。抽象方法需要定義在抽象類中,乙個類包含抽象方法,這個類一定是抽象類。如果某個類是抽象類,他可以有具體方法 有宣告,有實現 也可以有抽象方法。子類繼承父類 該父類為抽象類 就要實現該父類的所定義的所有抽象方法,否則該子類...

抽象類和介面區別

含有abstract修飾符的class即為抽象類,abstract類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體 concrete 子類中實現,所以,...

抽象類和介面區別

在開發人員崗位面試時,是否了解抽象類和介面之間的基本區別是乙個很重要的考量因素。完全不是。筆者面試過很多人,通常問的第乙個問題是關於介面和抽象類的區別。但實際上很少有程式設計師能給出正確的答案。就這個問題來說,初級程式設計師可能都會清楚之間的區別,可能也並不一定理解其背後的原因,但其結構上的差異,特...