接口和抽象類的區別

相同點:都不能被實例化,位於繼承樹的頂端,都包含抽象方法

不同點:1、設計目的:接口體現的一種規範,類似與整個系統的總綱,制訂了系統各模塊應該遵循的標準,因此接口不應該經常改變,一旦改變對整個系統是輻射性的。

               抽象類作爲多個子類的共同父類,體現的是一種模板式設計,可以當作系統實現過程中的中間產品,已經實現了系統部分功能。

            2、使用不同:(1)接口只能包含抽象方法,抽象類可以包含普通方法。

                                   (2)接口裏不能定義靜態方法,抽象類可以。

                                   (3)接口只能定義靜態常量屬性不能定義普通屬性,抽象類可以。

                                   (4)接口不包含構造器,抽象類可以(不是用於創建對象而是讓子類完成初始化)。

                                   (5)接口裏不能包含初始化塊,抽象類完全可以。

                                   (6)接口多繼承,抽象類但繼承(只能有一個直接父類)。

總結:接口所有方法全是抽象方法只能 public abstract修飾 (默認public abstract修飾 ),屬性默認public static final修飾。

             抽象類除了包含抽象方法外與普通類無區別。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章