java中的抽象與接口比較

這裏從以下幾個方面比較:

1.構造方法

    抽象類可以有構造方法

    接口沒有構造方法

2.訪問修飾符

    抽象類中的方法可以用publicprotecteddefault這些修飾符修飾

    接口中的方法默認修飾符爲public,有且只有public修飾符

3.main方法

    抽象類中可以有main方法,可被執行

    接口沒有main方法

4.默認方法實現

    抽象類中聲明的方法可以有默認的實現

    接口中只有方法的聲明,根本不存在方法實現

5.方法實現

    子類使用extends關鍵字來繼承抽象類。如果子類不是抽象類的話,它需要對抽象類中所有聲明的方法進行實現

    子類使用關鍵字implements來實現接口。它需要對接口中所有聲明的方法進行實現

6.添加新方法

    抽象類中添加新方法,可以在該類中進行默認實現,不需要修改子類,或者,所有已繼承該抽象類的子類,提供新方法的實現,需要修改子類

    接口中添加新方法,所有實現該接口的子類,必須提供新方法的實現,需要修改所有子類

7.多繼承

    抽象類可以繼承一個類,實現多個接口

    接口可以繼承一個或者多個接口

8.與普通java類比較

    抽象類無法實例化對象

    接口是與類完全不同的類型

9.速度

    抽象類比接口的速度稍快

    接口稍慢,需要時間尋找類中具體實現的方法




發佈了41 篇原創文章 · 獲贊 18 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章