相同點:都不能被實例化,位於繼承樹的頂端,都包含抽象方法
不同點:1、設計目的:接口體現的一種規範,類似與整個系統的總綱,制訂了系統各模塊應該遵循的標準,因此接口不應該經常改變,一旦改變對整個系統是輻射性的。
抽象類作爲多個子類的共同父類,體現的是一種模板式設計,可以當作系統實現過程中的中間產品,已經實現了系統部分功能。
2、使用不同:(1)接口只能包含抽象方法,抽象類可以包含普通方法。
(2)接口裏不能定義靜態方法,抽象類可以。
(3)接口只能定義靜態常量屬性不能定義普通屬性,抽象類可以。
(4)接口不包含構造器,抽象類可以(不是用於創建對象而是讓子類完成初始化)。
(5)接口裏不能包含初始化塊,抽象類完全可以。
(6)接口多繼承,抽象類但繼承(只能有一個直接父類)。
總結:接口所有方法全是抽象方法只能 public abstract修飾 (默認public abstract修飾 ),屬性默認public static final修飾。
抽象類除了包含抽象方法外與普通類無區別。