HOME 首頁
SERVICE 服務產品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    接口中定義默認方法(接口中定義默認方法有哪些)

    發(fā)布時間:2023-03-19 09:08:57     稿源: 創(chuàng)意嶺    閱讀: 104        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于接口中定義默認方法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端

    官網:https://ai.de1919.com

    本文目錄:

    接口中定義默認方法(接口中定義默認方法有哪些)

    一、java中接口中的方法默認為public static final。final方法不能被重寫。而接口必須被重寫。大神幫解釋下。

    那個不叫重寫,那個叫實現(xiàn)!

    重寫的意思是說兩個方法,只有方法體不同,接口中方法都沒方法體,只有方法聲明部分!

    二、如何強迫自己使用java8新特性

    一、Lambda表達式

    Lambda表達式可以說是Java 8最大的賣點,她將函數式編程引入了Java。Lambda允許把函數作為一個方法的參數,或者把代碼看成數據。

    一個Lambda表達式可以由用逗號分隔的參數列表、–>符號與函數體三部分表示。例如:

    Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );

    1 Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );

    為了使現(xiàn)有函數更好的支持Lambda表達式,Java

    8引入了函數式接口的概念。函數式接口就是只有一個方法的普通接口。java.lang.Runnable與java.util.concurrent.Callable是函數式接口最典型的例子。為此,Java

    8增加了一種特殊的注解@FunctionalInterface:

    1 @FunctionalInterface

    2 public interface Functional {

    3 void method();

    4 }

    二、接口的默認方法與靜態(tài)方法

    我們可以在接口中定義默認方法,使用default關鍵字,并提供默認的實現(xiàn)。所有實現(xiàn)這個接口的類都會接受默認方法的實現(xiàn),除非子類提供的自己的實現(xiàn)。例如:

    1 public interface DefaultFunctionInterface {

    2 default String defaultFunction() {

    3 return "default function";

    4 }

    5 }

    我們還可以在接口中定義靜態(tài)方法,使用static關鍵字,也可以提供實現(xiàn)。例如:

    1 public interface StaticFunctionInterface {

    2 static String staticFunction() {

    3 return "static function";

    4 }

    5 }

    接口的默認方法和靜態(tài)方法的引入,其實可以認為引入了C++中抽象類的理念,以后我們再也不用在每個實現(xiàn)類中都寫重復的代碼了。

    三、方法引用

    通常與Lambda表達式聯(lián)合使用,可以直接引用已有Java類或對象的方法。一般有四種不同的方法引用:

    構造器引用。語法是Class::new,或者更一般的Class< T >::new,要求構造器方法是沒有參數;

    靜態(tài)方法引用。語法是Class::static_method,要求接受一個Class類型的參數;

    特定類的任意對象方法引用。它的語法是Class::method。要求方法是沒有參數的;

    特定對象的方法引用,它的語法是instance::method。要求方法接受一個參數,與3不同的地方在于,3是在列表元素上分別調用方法,而4是在某個對象上調用方法,將列表元素作為參數傳入;

    四、重復注解

    在Java 5中使用注解有一個限制,即相同的注解在同一位置只能聲明一次。Java

    8引入重復注解,這樣相同的注解在同一地方也可以聲明多次。重復注解機制本身需要用@Repeatable注解。Java

    8在編譯器層做了優(yōu)化,相同注解會以集合的方式保存,因此底層的原理并沒有變化。

    五、擴展注解的支持

    Java 8擴展了注解的上下文,幾乎可以為任何東西添加注解,包括局部變量、泛型類、父類與接口的實現(xiàn),連方法的異常也能添加注解。

    六、Optional

    Java 8引入Optional類來防止空指針異常,Optional類最先是由Google的Guava項目引入的。Optional類實際上是個容器:它可以保存類型T的值,或者保存null。使用Optional類我們就不用顯式進行空指針檢查了。

    七、Stream

    Stream

    API是把真正的函數式編程風格引入到Java中。其實簡單來說可以把Stream理解為MapReduce,當然Google的MapReduce的靈感也是來自函數式編程。她其實是一連串支持連續(xù)、并行聚集操作的元素。從語法上看,也很像linux的管道、或者鏈式編程,代碼寫起來簡潔明了,非??釒?!

    八、Date/Time API (JSR 310)

    Java 8新的Date-Time API (JSR 310)受Joda-Time的影響,提供了新的java.time包,可以用來替代

    java.util.Date和java.util.Calendar。一般會用到Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、Duration這些類,對于時間日期的改進還是非常不錯的。

    九、JavaScript引擎Nashorn

    Nashorn允許在JVM上開發(fā)運行JavaScript應用,允許Java與JavaScript相互調用。

    十、Base64

    在Java 8中,Base64編碼成為了Java類庫的標準。Base64類同時還提供了對URL、MIME友好的編碼器與解碼器。

    除了這十大新特性之外,還有另外的一些新特性:

    更好的類型推測機制:Java 8在類型推測方面有了很大的提高,這就使代碼更整潔,不需要太多的強制類型轉換了。

    編譯器優(yōu)化:Java 8將方法的參數名加入了字節(jié)碼中,這樣在運行時通過反射就能獲取到參數名,只需要在編譯時使用-parameters參數。

    并行(parallel)數組:支持對數組進行并行處理,主要是parallelSort()方法,它可以在多核機器上極大提高數組排序的速度。

    并發(fā)(Concurrency):在新增Stream機制與Lambda的基礎之上,加入了一些新方法來支持聚集操作。

    Nashorn引擎jjs:基于Nashorn引擎的命令行工具。它接受一些JavaScript源代碼為參數,并且執(zhí)行這些源代碼。

    類依賴分析器jdeps:可以顯示Java類的包級別或類級別的依賴。

    JVM的PermGen空間被移除:取代它的是Metaspace(JEP 122)。

    三、java接口中的方法都是什么類型的

    接口內的方法只能定義,不用實現(xiàn),默認都是public abstract類型的

    四、abstract interface和interface的區(qū)別

    沒什么區(qū)別,interface實際上就是一個抽象的,再加上abstract修飾沒有多大含義,唯一可能看到這種情況就是用反編譯工具生成的代碼,而java源碼種通常都標明了abstract和interface同時修飾一個接口,事實上這完全沒必要

    我這里是說的抽象接口啊 abstract interface

    加了抽象的接口,他還是個接口,我明白你的意思,就是想在寫接口實現(xiàn)類的時候不用實現(xiàn)所有接口方法,那么你可以先用一個抽象類實現(xiàn)你的接口,然后再繼承你實現(xiàn)接口的抽象類。這時候你可以在你的抽象類里實現(xiàn)你其他類中不想實現(xiàn)的接口方法,而必須實現(xiàn)的方法聲明為abstract。

    以上就是關于接口中定義默認方法相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    車載兩個USB接口有什么區(qū)別(車載兩個usb接口圖標是什么意思)

    usb-c接口是什么樣子的(蘋果usb-c充電頭)

    接口中可以包含已實現(xiàn)的方法(接口可以包含已經實現(xiàn)的方法)

    微景觀設計圖(微景觀設計圖片)

    ChatGPT API 價格大幅下調90%,但仍舊不便宜。