Java8的default和static關(guān)鍵字的使用講解
1. default和static關(guān)鍵字
a.default 用在接口中, 為該接口的實(shí)現(xiàn)類(lèi)的方法. --> 不能通過(guò)接口直接調(diào)用.
static 也是用在接口中, 同Class中的static方法一樣, 是類(lèi)級(jí)別的方法, 而不是對(duì)象的方法. --> 可以通過(guò)接口直接調(diào)用.
b.一個(gè)接口可以有多個(gè)default方法, 也可以有多個(gè)static方法.
2. default 在使用中的注意事項(xiàng)
如下面的例子
有兩個(gè)接口, InterA和InterB, 都有一個(gè)方法, 為defaultFunction(),ClassA僅僅為InterA的實(shí)現(xiàn)類(lèi). 那么沒(méi)有報(bào)錯(cuò). 當(dāng)調(diào)用ClassA的defaultFunction()時(shí),會(huì)自動(dòng)調(diào)取InterA的方法.
但是ClassAB同時(shí)為InterA和InterB的實(shí)現(xiàn)類(lèi).當(dāng)調(diào)用ClassAB的defaultFunction()時(shí),不知道該調(diào)取哪個(gè)接口的了,所以,ClassAB需要自己重寫(xiě)這個(gè)方法.

3. Static則和default不同,

打印結(jié)果

4. 源碼
public class DefaultDemoApp {
public static void main(String[] args) {
new ClassA().defaultFunction();
new ClassAB().defaultFunction();
}
}
interface InterA {
default void defaultFunction() {
System.out.println("This is A defaultFunction");
}
static void staticFunction() {
System.out.println("This is A status function");
}
}
interface InterB {
default void defaultFunction() {
System.out.println("This is B defaultFunction");
}
static void staticFunction() {
System.out.println("This is B status function");
}
}
class ClassA implements InterA {
}
class ClassAB implements InterA, InterB {
@Override
public void defaultFunction() {
InterB.staticFunction();
}
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Java中的stream流的概念解析及實(shí)際運(yùn)用總結(jié)
流是指?jìng)鬏敃r(shí)的數(shù)據(jù),Java為流準(zhǔn)備了很多內(nèi)置類(lèi),尤其是IO輸入輸出流非常常用,這里我們來(lái)看一下Java中的stream流的概念解析及實(shí)際運(yùn)用總結(jié)2016-06-06
SpringBoot之@ConditionalOnProperty注解使用方法
在平時(shí)業(yè)務(wù)中,我們需要在配置文件中配置某個(gè)屬性來(lái)決定是否需要將某些類(lèi)進(jìn)行注入,讓Spring進(jìn)行管理,而@ConditionalOnProperty能夠?qū)崿F(xiàn)該功能,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05
springboot使用redisRepository和redistemplate操作redis的過(guò)程解析
本文給大家介紹springboot整合redis/分別用redisRepository和redistemplate操作redis,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-05-05
nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解
這篇文章主要為大家介紹了nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

