增加了兩類成員
(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...