1. 程式人生 > >abstract 和 interface區別

abstract 和 interface區別

1.介面就是提供一種統一的’協議’,而介面中的屬性也屬於’協議’中的成員.它們是公共的,靜態的,最終的常量.介面中的屬性,相當於全域性常量.介面只是對一類事物的屬性和行為更高層次的抽象。對修改關閉,對擴充套件(不同的實現implements)開放,介面是對開閉原則的一種體現抽象類是不’完全’的類,相當於是介面和具體類的一箇中間層.即滿足介面的抽象,也滿足具體的實現.

2.實現介面的關鍵字是implements,抽象類的關鍵字是extends,一個類可以實現多個介面,但是一個類只能繼承一個抽象類

3.介面中定義的成員變數預設為public,static和final.

public static final int i=15; 或則 int i=10;(可以省略掉一部分)

注意在宣告的時候要給變數賦予初值

抽象類中的成員變數預設為default,也可以被private,protected和public

4.介面中的抽象方法只能是public,並且預設值為public abstract型別,抽象類中的抽象方法可以是public和protected

5.抽象類中可以有非空抽象的普通方法,而介面中所有的方法都是抽象的,不能有非抽象的普通方法。