JDK1 8之後,介面的語法有改動

2021-10-07 15:39:58 字數 1240 閱讀 3907

增加了兩類成員

(1)靜態方法:public static,static不可以省略的

通過「介面名.方法」來進行呼叫

介面的靜態方法不會繼承到實現類中,不能用介面的實現類物件呼叫,只能用介面名呼叫。

為什麼這麼設計呢?

因為原來的api中,往往會設計為這樣:

(1)集合類的介面:collection

集合的工具類:collections

(2)檔案

檔案路徑的介面:path

工具類:paths

**覺得沒有必要為了這個介面在增加乙個工具類,乾脆把這些方法直接寫到介面中,

減少.class 的檔案的數量,減少api的型別的數量**

(2)預設方法:public default,default不可以省略的

通過實現類的物件進行呼叫。

說明:實現類可以對介面的預設方法進行重寫。重寫時,不需要加default。不然就錯了

public

class

testinte***ce

}inte***ce

myinter

public

default

void

method()

}class

myimpl

implements

myinter

}//預設抽象方法的使用

/* *這個 a(); 在每乙個的介面的實現類中都是一樣的方法體,只有snbd中不一樣

*那麼可以考慮的是把這個方法寫成預設的方法,在實現類中,如果方法體相同的就不用

*在寫一遍了,在實現類中如果方法體不同,重寫一下就好了。

inte***ce a

class suba implements a

}class subb implements a

}class subc implements a

}class subd implements a }*/

inte***cea}

class

suba

implements

aclass

subb

implements

aclass

subc

implements

aclass

subd

implements

a}

jdk1 8對介面的改進

在jdk1.8的特性中,具有最大變化的就是介面。理解 假設乙個父介面被超級多子類繼承,並且子類還會被子類的子類繼承 當父介面需要新增乙個方法時,因為該方法一定會在超多個子類中被覆寫的,所以工作量難以想象。從jdk1.8開始,專門提供了兩類新的結構 1 可以使用default來定義普通方法,普通方法通...

JDK1 8的一些改動

筆者所在公司生產環境用的jdk版本是1.6 最近打算公司打算在新的業務系統裡面應用jdk1.8,注意到jdk1.8較jdk1.6的一些改動。1 atomiclong的getandset getandincrement getanddecrement getandadd incrementandget...

JDK1 8 函式式介面

前言 公司專案中大量使用了該新特性,故對此進行學習總結 consumer消費型介面 之所以叫做消費型按照我的理解 消費 邏輯處理 傳入的資料 抽象方法 void accept t t 接收乙個引數進行消費,但無需返回結果。介面.accept x 意思就是將x的引數,帶入到介面裡去執行 預設方法 an...