抽象類和介面的區別(使用舉例)

2021-08-19 23:41:51 字數 756 閱讀 3683

區別:

1、抽象類代表的是「is-a」的關係,介面所代表的是"like-a"的關係。

2、介面實際上是乙個特殊的抽象類。

3、抽象類可以有抽象方法,也可以有例項方法

介面中所有的方法都是公開抽象方法

4、具體類使用抽象類,用extends(繼承)

具體類使用介面,用implements(實現)

5、具體類實現介面,必須重寫介面中的所有方法!

6、抽象類可以有自己的構造方法,介面不能有構造方法

舉例:抽象類:

abstract class door
介面:

inte***ce door
如果需要新增乙個報警alarm()的功能,該如何實現?

如果把alarm()放到抽象類裡,但是有的門不一定具備報警的功能,所以此路不通!

如果把alarm()放到介面裡,需要用到報警功能的類就需要實現這個介面中的open( )和close( ),也許這個類根本就不具備   open( )和close( )這兩個功能,比如火災報警器。所以此路也不通!

以下為解決辦法:

inte***ce alarm

abstract class door

class alarmdoor extends door implements alarm

void close()

void alarm()

}

抽象類和介面的區別,使用場景

我簡單說明一下我的看法 1 介面是核心,其定義了要做的事情,包含了許多的方法,但沒有定義這些方法應該如何做。2 如果許多類實現了某個介面,那麼每個都要用 實現那些方法 3 如果某一些類的實現有共通之處,則可以抽象出來乙個抽象類,讓抽象類實現介面的公用的 而那些個性化的方法則由各個子類去實現。所以,抽...

JAVA抽象類和介面的區別,使用場景

抽象層次從高到底 介面 抽象類 具體實現類 1.介面中定義了一些方法,但是沒有實現。2.在介面的具體實現類中,如果有共同的實現 部分 可用乙個抽象類來實現這些共同的部分 個性化的實現交給具體實現類 子類 完成。3.抽象類提供了公共方法的實現 使用場景 包含抽象方法的類即為抽象類,當乙個抽象類中所有的...

抽象類和介面的區別

要結合來使用,從而互補長短。接下來先說說抽象類和介面的區別。區別一,兩者表達的概念不一樣。抽象類是一類事物的高度聚合,那麼對於繼承抽象類的子類來說,對於抽象類來說,屬於 是 的關係 而介面是定義行為規範,因此對於實現介面的子類來說,相對於介面來說,是 行為需要按照介面來完成 這些聽起來有些虛,舉個例...