Java 教程
在 Java 8之前,接口可以有常量變量和抽象方法。
我們不能在接口中提供方法實(shí)現(xiàn)。如果我們要提供抽象方法和非抽象方法(方法與實(shí)現(xiàn))的組合,那么我們就得使用抽象類。
以上實(shí)例執(zhí)行輸出結(jié)果為:
Open Database connection Log Message : INFO Close Database connection Open Database connection Log Message : WARN Close Database connection Open Database connection Log Message : ERROR Close Database connection Open Database connection Log Message : FATAL Close Database connection
在上面的例子中,每個(gè)日志方法都有自己的實(shí)現(xiàn)。
在 Java 8 接口引入了一些新功能——默認(rèn)方法和靜態(tài)方法。我們可以在Java SE 8的接口中編寫方法實(shí)現(xiàn),僅僅需要使用 default 關(guān)鍵字來(lái)定義它們。
在 Java 8 中,一個(gè)接口中能定義如下幾種變量/方法:
以上實(shí)例執(zhí)行輸出結(jié)果為:
Open Database connection Log Message : INFO Close Database connection Open Database connection Log Message : WARN Close Database connection Open Database connection Log Message : ERROR Close Database connection Open Database connection Log Message : FATAL Close Database connection
Java 9 不僅像 Java 8 一樣支持接口默認(rèn)方法,同時(shí)還支持私有方法。
在 Java 9 中,一個(gè)接口中能定義如下幾種變量/方法:
以下實(shí)例提取了冗余到通用方法,看起來(lái)明顯更簡(jiǎn)潔:
以上實(shí)例執(zhí)行輸出結(jié)果為:
Open Database connection Log Message : INFO Close Database connection Open Database connection Log Message : WARN Close Database connection Open Database connection Log Message : ERROR Close Database connection Open Database connection Log Message : FATAL Close Database connection其他擴(kuò)展