抽象類和介面

2021-08-01 05:42:16 字數 1817 閱讀 7331

抽象類:普通類就是乙個完善的功能類,可以直接產生物件並且可以使用,裡面的方法都是帶有方法體的,而抽象類之中最大的特點是包含了抽象方法,而抽象方法是只宣告而未實現(沒有方法體)的方法,而抽象方法定義的時候要使用abstract關鍵字完成,而抽象方法一定要在抽象類之中,抽象類要使用abstract關鍵字宣告。

抽象類的使用原則

•抽象類必須有子類,使用extends繼承,乙個子類只能繼承乙個抽象類;

•子類(如果不是抽象類)則必須覆寫抽象類之中的全部抽象方法;

•抽象類物件可以使用物件的向上轉型方式,通過子類來進行例項化操作。

•抽象類能否使用final定義?

不能,因為抽象類必須有子類,final定義的類太監類,不能有子類;

•抽象類之中能否包含構造方法?

可以,因為抽象類之中除了包含抽象方法之外,還包含了普通方法和屬性,而屬性一定要在構造方法執行完畢之後才可以進行初始化操作;

•抽象類之中能否不包含抽象方法?

可以,抽象類之中可以沒有抽象方法,但是反過來講,如果有抽象方法,則一定是抽象類,即使抽象類之中沒有抽象方法,也不能夠被直接例項化;

•抽象類能否使用static宣告?

如果定義的是外部抽象類,則不能夠使用static宣告,可是如果定義的是內部抽象類,那麼這個內部的抽象類使用了static宣告之後,就表示是乙個外部的抽象類。

介面:屬於一種特殊的類,如果乙個類定義的時候全部由抽象方法和全域性常量所組成的話,那麼這種類就稱為介面,但是介面是使用inte***ce關鍵字進行定義的。

介面的使用原則如下

•每乙個介面必須定義子類,子類使用implements關鍵字實現介面;

•介面的子類(如果不是抽象類)則必須覆寫介面之中所定義的全部抽象方法;

•利用介面的子類,採用物件的向上轉型方式,進行介面物件的例項化操作。

乙個子類可以同時實現多個介面,但是只能繼承乙個父類。

如果乙個類現在即要實現介面又要繼承抽象類的話,則應該採用先繼承後實現的方式完成。

介面之中的訪問許可權只有一種:public,即:定義介面方法的時候就算沒有寫上public,那麼最終也是public。

完整定義:

inte***ce a

簡化定義:

inte***ce a

介面有三大主要功能

•制訂操作標準;

•表示一種能力;

•將伺服器端的遠端方法檢視暴露給客戶端。

介面的應用

(1)、介面的實際作用——工廠設計模式

(2)、介面的實際作用——**設計模式

抽象類和介面的區別

1 定義關鍵字:abstract class /inte***ce

2 組成:常量、變數、抽象方法、普通方法、構造方法/全域性常量、抽象方法

3 許可權:可以使用各種許可權 /只能是public

4 關係:乙個抽象類可以實現多個介面/介面不能夠繼承抽象類,卻可以繼承多介面

5 使用:子類使用extends繼承抽象類/子類使用implements實現介面

6 設計模式:模板設計模式/工廠設計模式、**設計模式

7 侷限:乙個子類只能夠繼承乙個抽象類/乙個子類可以實現多個介面

相同點:抽象類和介面的物件都是利用物件多型性的向上轉型,進行介面或抽象類的例項化操作。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...