更新時間:2022年08月30日14時39分 來源:傳智教育 瀏覽次數(shù):
如果一個抽象類的所有方法都是抽象的,則可以定義這個類為接口。接口是Java中最重要的概念之一,接口是一種特殊的類,由全局常量和公共的抽象方法組成,不能包含普通方法。
在JDK8之前,接口是由全局常量和抽象方法組成的,且接口中的抽象方法不允許有方法體。JDK8對接口進(jìn)行了重新定義,接口中除了抽象方法之外,還可以有默認(rèn)方法和靜態(tài)方法(也稱類方法),默認(rèn)方法使用default修飾,靜態(tài)方法使用static修飾,且這兩種方法都允許有方法體。
接口使用interface關(guān)鍵字聲明,語法格式如下:
public interface 接口名 extends 接口1,接口2...{ public static final 數(shù)據(jù)類型 常量名 = 常量值; public default 返回值類型 抽象方法名 (參數(shù)列表); public abstract 返回值類型 方法名 (參數(shù)列表) { //默認(rèn)方法的方法體 } public abstract 返回值類型 方法名(參數(shù)列表) { //類方法的方法體 } }
在上述語法中,“extend接口1,接口2...”表示一個接口可以有多個父接口,父接口之間用逗號分隔。Java使用接口的目的是克服單繼承的限制,因為一個類只能有一個父類,而一個接口可以同時繼承多個父接口。接口中的變量默認(rèn)使用“public static final”進(jìn)行修飾,即全局常量。接口中定義的方法默認(rèn)使用“public abstract”進(jìn)行修飾,即抽象方法。如果接口聲明為public,則接口中的變量和方法全部為public。
注意:
在很多Java程序中,經(jīng)??吹骄帉懡涌谥械姆椒〞r省略了public,有很多讀者認(rèn)為它的訪問權(quán)限是default,這實際上是錯誤的。不管寫不寫訪問權(quán)限,接口中方法的訪問權(quán)限永遠(yuǎn)是public。與此類似,在接口中定義常量時,可以省略前面的“public static final”,此時,接口會默認(rèn)為常量添加“public static final”。