抽象類和介面的區別及使用

2021-09-27 12:34:35 字數 816 閱讀 8330

1.介面的關鍵字為inte***ce

2.介面中只能宣告方法和設定常量,變數預設為public static final型別,方法預設為public型別

3.乙個類可以實現多個介面

4.乙個類實現介面,必須要實現介面的所有的方法

定義乙個介面:

inte***ce

manth

1.抽象類必須用 abstract修飾

2.如果乙個類含有抽象方法,則這個類一定是抽象類,但抽象類不一定有抽象方法

3.抽象類可以設定成員變數

4.如果乙個類繼承了乙個抽象類,則必須重寫所有的抽象方法

5.抽象類可以繼承抽象類

6.抽象類不能被例項化,用於被繼承

定義乙個抽象類:

public abstract class

aircraft

1.介面中定義的成員變數是乙個常量,是不可改變得。而抽象類中定義的成員變數是可以賦值的

2.抽象類是需要被繼承的,用關鍵字(extends)。介面是需要被實現的,用關鍵字(implements)

3.抽象類中定義方法不能省略掉關鍵字 absteract,但介面類中可以省略

舉例:拿汽車來說,汽車都有 車軲轆,玻璃,方向盤等——共有的(屬性),汽車也都具有 前進,後退等————共有的(方法) ,因此就可以提取出它們共有的屬性和方法

在這種場景下,假如先用介面來實現:介面中定義的成員變數是乙個常量,難道賓士的軲轆和奧拓的軲轆一樣?因此在這種情景下就只能用抽象類,讓各種車型來繼承這個抽象類,並分別去設定不同的屬性和方法

抽象類和介面的區別

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

抽象類和介面的區別

net提供了介面,這個不同於class或者struct的型別定義。介面有些情況,看似和抽象類一樣,因此有些人認為在.net可以完全用介面來替換抽象類。其實不然,介面和抽象類各有長處和缺陷,因此往往在應用當中,兩者要結合來使用,從而互補長短。接下來先說說抽象類和介面的區別。區別一,兩者表達的概念不一樣...

抽象類和介面的區別

net提供了介面,這個不同於class或者struct的型別定義。介面有些情況,看似和抽象類一樣,因此有些人認為在.net可以完全用介面來替換抽象類。其實不然,介面和抽象類各有長處和缺陷,因此往往在應用當中,兩者要結合來使用,從而互補長短。接下來先說說抽象類和介面的區別。區別一,兩者表達的概念不一樣...