最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

default怎么修飾接口中的方法詳解

 更新時間:2021年05月26日 14:30:38   作者:遠赴山河萬里  
今天給各位小伙伴們總結(jié)一下default怎么修飾接口中的方法,文中有非常詳細的圖文解說.對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下

一、default修飾接口中的方法

在實現(xiàn)HandlerInterceptor接口時,我發(fā)現(xiàn)不實現(xiàn)HandlerInterceptor接口的方法也不會報錯

在這里插入圖片描述

仔細想來,還是我對接口的理解不清晰。

打開源碼發(fā)現(xiàn)HandlerInterceptor接口中的方法都是default

在這里插入圖片描述

在以前的接口編寫中,我總是省略權(quán)限修飾符,因為在接口中的方法中默認是public abstract

那么再來對接口進行總結(jié)。

在這里插入圖片描述

那么也就是說,實現(xiàn)類要覆蓋接口中的抽象方法就能實例化,而HandlerInterceptor接口中的方法都是default

在JDK8增加的default修飾接口方法時,有什么作用呢?

實現(xiàn)類會繼承接口中的default方法

還有兩個要注意的點

一言以蔽之,更接近實現(xiàn)類的優(yōu)先級更高,如: 實現(xiàn)類 > 抽象類 > 接口

1. 如果一個類同時實現(xiàn)接口A和B,接口A和B中有相同的default方法,這時,該類必須重寫接口中的default方法

2. 如果子類繼承父類,父類中有b方法,該子類同時實現(xiàn)的接口中也有b方法(被default修飾),那么子類會繼承父類的b方法而不是繼承接口中的b方法

二、Java中的“多繼承“?

在學習C++時,多繼承會帶來非常著名的菱形繼承問題

那么為什么Java接口為何能多繼承?

1.Java接口是行為性的,也就是說接口只是定義某個行為的名稱
2.具體的實現(xiàn)動作,都在實現(xiàn)類本身這里。

從JDK8開始,接口中可以寫default方法了。這其實是java自己就給自己出了一個問題。

接口可以書寫默認方法了,然后又因為接口之間是可以多繼承的,因而實質(zhì)上Java 8的接口多繼承其實也會涉及到實現(xiàn)多繼承的問題。

解決接口default方法沖突的三步驟:

  • 方法簽名相同時,才表示出現(xiàn)了沖突。
  • 類中的方法優(yōu)先級最高。類或者父類中的方法實現(xiàn)優(yōu)先級大于任何接口的默認方法
  • 其實,子接口的默認方法優(yōu)先級更高。
  • 若最終還是無法判斷,那么實現(xiàn)類必須通過顯示復寫的方式復寫默認方法,然后再自己通過xxx.super.xxx()的方式來指定具體使用哪個接口的實現(xiàn)

總之,Java8在語言層面上,對若出現(xiàn)接口default方法沖突的解決方案是:不作為。其實不作為也是一種作為,它讓編譯器去提示調(diào)用者必須顯示的override這個沖突的方法,讓coder自己去決定調(diào)用邏輯

三、關(guān)于抽象類與接口的思考

如果現(xiàn)在問我接口和抽象類有什么區(qū)別,我會覺得去說兩者之間具體的使用細節(jié)是舍本逐末了,應(yīng)該從設(shè)計理念出發(fā)。

于是引出我對此的理解。

抽象類:抽象體,對于個體(事物)的抽象。

接口:抽象面,對于事物某一特性(行為)的抽象。接口只是定義某個行為的名稱。

在Java的設(shè)計中,經(jīng)??梢钥吹絻烧呓M合起來使用。如Servlet

什么叫Servlet?實現(xiàn)了Servlet接口的類就是一個Servlet。

在這里插入圖片描述

可以發(fā)現(xiàn),抽象類GenericServlet實現(xiàn)了Servlet接口。

接口的好處是什么?

規(guī)范。

抽象類的好處是什么?

捕捉子類的通用特性,減少冗余代碼,同時起到規(guī)范的作用。

這樣兩者結(jié)合起來的好處是什么(GenericServlet)?

規(guī)范,同時減少了編程人員的所需要編寫的代碼,抽象類給出模板。

到此這篇關(guān)于default怎么修飾接口中的方法詳解的文章就介紹到這了,更多相關(guān)default修飾方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Spring-Boot中如何使用@Value注解注入集合類

    在Spring-Boot中如何使用@Value注解注入集合類

    這篇文章主要介紹了在Spring-Boot中如何使用@Value注解注入集合類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java8新特性-lambda表達式入門學習心得

    java8新特性-lambda表達式入門學習心得

    這篇文章主要介紹了java8新特性-lambda表達式入門學習心得,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java利用redis實現(xiàn)防止接口重復提交

    Java利用redis實現(xiàn)防止接口重復提交

    本文主要為大家詳細介紹了Java如何利用redis實現(xiàn)防止接口重復提交,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • MyBatis-Flex實現(xiàn)分頁查詢的示例代碼

    MyBatis-Flex實現(xiàn)分頁查詢的示例代碼

    在MyBatis-Flex中實現(xiàn)分頁查詢時,需要注意維護一個獲取數(shù)據(jù)庫總數(shù)的方法,詳細介紹了UserService、UserServiceImpl類以及Mapper.xml配置,感興趣的可以了解一下
    2024-10-10
  • RestTemplate的DELETE及PUT等請求方法使用精講

    RestTemplate的DELETE及PUT等請求方法使用精講

    這篇文章主要為大家介紹了RestTemplate的DELETE及PUT等請求方法的使用精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • ScheduledExecutorService任務(wù)定時代碼示例

    ScheduledExecutorService任務(wù)定時代碼示例

    這篇文章主要介紹了ScheduledExecutorService任務(wù)定時代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • IDEA 中創(chuàng)建Spring Data Jpa 項目的示例代碼

    IDEA 中創(chuàng)建Spring Data Jpa 項目的示例代碼

    這篇文章主要介紹了IDEA 中創(chuàng)建Spring Data Jpa 項目的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot中的@Import注解四種使用方式詳解

    SpringBoot中的@Import注解四種使用方式詳解

    這篇文章主要介紹了SpringBoot中的@Import注解四種使用方式詳解,@Import注解只可以標注在類上,可以結(jié)合 @Configuration注解、ImportSelector、ImportBeanDefinitionRegistrar一起使用,也可以導入普通的類,需要的朋友可以參考下
    2023-12-12
  • Java超詳細講解設(shè)計模式之一的單例模式

    Java超詳細講解設(shè)計模式之一的單例模式

    單例模式(Singleton Pattern)是 Java 中最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式
    2022-03-03
  • SpringBoot整合jasypt實現(xiàn)重要數(shù)據(jù)加密

    SpringBoot整合jasypt實現(xiàn)重要數(shù)據(jù)加密

    Jasypt是一個專注于簡化Java加密操作的開源工具,這篇文章主要為大家介紹了詳細介紹了如何使用jasypt實現(xiàn)重要數(shù)據(jù)加密,感興趣的小伙伴可以了解下
    2025-03-03

最新評論

石景山区| 泰州市| 康平县| 嫩江县| 无极县| 古交市| 南漳县| 陆良县| 渭源县| 芜湖县| 福安市| 汝南县| 唐河县| 诸城市| 潮安县| 中山市| 任丘市| 博客| 景宁| 连山| 沙坪坝区| 济源市| 瑞安市| 河北省| 凤庆县| 万盛区| 大同市| 金华市| 泊头市| 北宁市| 安西县| 耒阳市| 鸡东县| 镇安县| 高安市| 寻甸| 资中县| 武城县| 万全县| 彭山县| 故城县|