1.語法層面上的區別設計
1)抽象類能夠提供成員方法的實現細節,而接口中只能存在public abstract 方法;繼承
2)抽象類中的成員變量能夠是各類類型的,而接口中的成員變量只能是public static final類型的;接口
3)接口中不能含有靜態代碼塊以及靜態方法,而抽象類能夠有靜態代碼塊和靜態方法;變量
4)一個類只能繼承一個抽象類,而一個類卻能夠實現多個接口語法
2.設計層面上的區別方法
1)抽象類是對一種事物的抽象,即對類抽象,而接口是對行爲的抽象。抽象類是對整個類總體進行抽象,包括屬性、行爲,可是接口倒是對行進行抽象。static
2)抽象類是是否是的關係,接口是有沒有的關係。好比飛機和鳥,蜂鳥,麻雀繼承了鳥的屬性。飛機和鳥有飛行屬性,由於能夠把飛行定義爲接口。ab