Java8的default和static關鍵字的使用講解
1. default和static關鍵字
a.default 用在接口中, 為該接口的實現(xiàn)類的方法. --> 不能通過接口直接調(diào)用.
static 也是用在接口中, 同Class中的static方法一樣, 是類級別的方法, 而不是對象的方法. --> 可以通過接口直接調(diào)用.
b.一個接口可以有多個default方法, 也可以有多個static方法.
2. default 在使用中的注意事項
如下面的例子
有兩個接口, InterA和InterB, 都有一個方法, 為defaultFunction()
,ClassA僅僅為InterA的實現(xiàn)類. 那么沒有報錯. 當調(diào)用ClassA的defaultFunction()時,會自動調(diào)取InterA的方法.
但是ClassAB同時為InterA和InterB的實現(xiàn)類.當調(diào)用ClassAB的defaultFunction()時,不知道該調(diào)取哪個接口的了,所以,ClassAB需要自己重寫這個方法.
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é)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
Java中的stream流的概念解析及實際運用總結(jié)
流是指傳輸時的數(shù)據(jù),Java為流準備了很多內(nèi)置類,尤其是IO輸入輸出流非常常用,這里我們來看一下Java中的stream流的概念解析及實際運用總結(jié)2016-06-06SpringBoot之@ConditionalOnProperty注解使用方法
在平時業(yè)務中,我們需要在配置文件中配置某個屬性來決定是否需要將某些類進行注入,讓Spring進行管理,而@ConditionalOnProperty能夠?qū)崿F(xiàn)該功能,文中有詳細的代碼示例,需要的朋友可以參考下2023-05-05springboot使用redisRepository和redistemplate操作redis的過程解析
本文給大家介紹springboot整合redis/分別用redisRepository和redistemplate操作redis,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-05-05