欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java詳細(xì)講解不同版本的接口語(yǔ)法和抽象類與接口的區(qū)別

 更新時(shí)間:2022年04月09日 10:40:00   作者:學(xué)廢的小白!  
對(duì)于面向?qū)ο缶幊虂?lái)說(shuō),抽象是它的一大特征之一,在?Java?中可以通過(guò)兩種形式來(lái)體現(xiàn)OOP的抽象:接口和抽象類,下面這篇文章主要給大家介紹了關(guān)于Java入門基礎(chǔ)之抽象類與接口的相關(guān)資料,需要的朋友可以參考下

什么是接口?

說(shuō)到接口,USB大家肯定不陌生~
接口是一種標(biāo)準(zhǔn)、規(guī)范.
注意:接口一旦制定好,使用者和實(shí)現(xiàn)者都必須遵循的標(biāo)準(zhǔn).

在這里插入圖片描述

接口的語(yǔ)法: (JDK7.0)

(1) 關(guān)鍵字:interface 
(2) 語(yǔ)法:  interface 接口名{} 
(3) 接口編譯之后會(huì)生成對(duì)應(yīng)的 .class文件 
(4) 接口不能創(chuàng)建對(duì)象,但是可以聲明引用 接口名 引用名; 
(5) 接口中沒(méi)有構(gòu)造方法 
(6) 接口中所有的屬性都是公開(kāi)的靜態(tài)常量
    (默認(rèn)被:public static final) 
(7) 接口中所有的方法都是公開(kāi)抽象方法
    (默認(rèn)被:public abstract修飾) 
    注意:接口中的方法默認(rèn)訪問(wèn)權(quán)限為public; 
         類中方法默認(rèn)訪問(wèn)權(quán)限是 default

接口的實(shí)現(xiàn)類:

語(yǔ)法:

class 類名 implements 接口名{} 

注意:實(shí)現(xiàn)的關(guān)鍵字為 implements 
(1) 如果實(shí)現(xiàn)類不想成為抽象類,必須覆蓋(實(shí)現(xiàn))接口中所有的方法 
(2) 實(shí)現(xiàn)類中覆蓋接口中的方法時(shí),訪問(wèn)權(quán)限必須是public
使用:
(1) 接口類型的引用中,只能存儲(chǔ)對(duì)應(yīng)實(shí)現(xiàn)類的對(duì)象,體現(xiàn)多態(tài)的應(yīng)用 
(2) 語(yǔ)法:

    接口名 引用名 = new 實(shí)現(xiàn)類類名(實(shí)參); 

    注意:一個(gè)接口可以定義多個(gè)實(shí)現(xiàn)類

接口的繼承性:(很重要哦~)

接口與接口之間為多繼承的關(guān)系

(1) 一個(gè)接口可以同時(shí)繼承多個(gè)父接口 

(2) 語(yǔ)法: 

    interface 接口名 extends 父接口名1,父接口名2{}

類與接口之間為多實(shí)現(xiàn)的關(guān)系

(1) 一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口 

(2) 語(yǔ)法: 

    class 類名 implements 接口名1,接口名2{} 

(3) 一個(gè)類同時(shí)實(shí)現(xiàn)多個(gè)接口,不想成為抽象類,則需要實(shí)現(xiàn)所有接口中所有方法 
    (包括所實(shí)現(xiàn)接口的父接口中的方法)

一個(gè)類實(shí)現(xiàn)多個(gè)接口的同時(shí)還有可以繼承一個(gè)類

(1) 如果一個(gè)類繼承一個(gè)父類同時(shí)實(shí)現(xiàn)多個(gè)接口,必須先繼承,再實(shí)現(xiàn) 

(2) 語(yǔ)法: 

    class 類名 extends 父類名 implements 父接口1,父接口2{} 

    注意:必須先 extends ,再 implements 

類與類之間存在:?jiǎn)卫^承------extends

類與接口之間存在:多實(shí)現(xiàn)------implements

接口與接口之間存在:多繼承------extends

接口的影響:

1.由于接口之間為多繼承的關(guān)系,同時(shí)類與接口之間是多實(shí)現(xiàn)的關(guān)系,所以讓多態(tài)更加多元化和復(fù)雜
2.如果強(qiáng)制類型轉(zhuǎn)換的雙方只要有一方為接口類型,則編譯一定通過(guò),運(yùn)行分以下兩種情況:
  a.如果轉(zhuǎn)換的引用中存儲(chǔ)的實(shí)際對(duì)象類型是要轉(zhuǎn)換類型的一種,運(yùn)行通過(guò) 
  b.如果轉(zhuǎn)換的引用中存儲(chǔ)的實(shí)際對(duì)象類型不是要轉(zhuǎn)換的一種,編譯通過(guò),但是運(yùn)行報(bào)錯(cuò),錯(cuò)誤信息:
    Java.lang.ClassCastException(類型轉(zhuǎn)換異常)

接口的語(yǔ)法: (JDK8.0)

(1) 默認(rèn)方法: 

    a. public default 返回值類型 方法名(形參列表){ 
            // 方法的實(shí)現(xiàn)部分 
       } 

    b. 注意:接口中方法被 default修飾代表,此方法允許帶有方法實(shí)現(xiàn)部分 
    c. 默認(rèn)方法訪問(wèn)權(quán)限 為 public 
    d. 默認(rèn)方法允許被覆蓋,但是覆蓋時(shí)訪問(wèn)修飾符為 public 

(2) 靜態(tài)方法: 

    a. public static 返回值類型 方法名(形參列表){ 
            // 方法的實(shí)現(xiàn)部分 
       } 

    b. 接口中靜態(tài)方法訪問(wèn)權(quán)限是public

接口的語(yǔ)法: (JDK9.0)—(私有方法)

(1) 接口中從9.0開(kāi)始,方法可以被 private修飾 

(2) 語(yǔ)法: 

    private 返回值類型 方法名(形參列表){ 
        // 方法的實(shí)現(xiàn) 
    } 

(3) 私有方法供接口內(nèi)部使用,通常將其他方法的共同邏輯部分提取,減少代碼冗余

接口的分類

常量接口:

接口中只有屬性、沒(méi)有方法,應(yīng)用很少

空接口:

通常稱為標(biāo)記接口,接口中沒(méi)有任何屬性和抽象;
例如:IO對(duì)象序列化時(shí)應(yīng)用

函數(shù)式接口:

接口中有且只有一個(gè)抽象方法(靜態(tài)和默認(rèn)不關(guān)注),廣泛應(yīng)用在Lambda表達(dá)式中

抽象類和接口的區(qū)別? (要牢記哦~)

在這里插入圖片描述

到此這篇關(guān)于Java詳細(xì)講解不同版本的接口語(yǔ)法和抽象類與接口的區(qū)別的文章就介紹到這了,更多相關(guān)Java 接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot實(shí)現(xiàn)高吞吐量異步處理詳解(適用于高并發(fā)場(chǎng)景)

    Springboot實(shí)現(xiàn)高吞吐量異步處理詳解(適用于高并發(fā)場(chǎng)景)

    這篇文章主要介紹了Springboot實(shí)現(xiàn)高吞吐量異步處理詳解(適用于高并發(fā)場(chǎng)景),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Spring AI實(shí)現(xiàn)智能聊天模型

    Spring AI實(shí)現(xiàn)智能聊天模型

    通過(guò)本文的介紹,我們深入了解了Spring AI項(xiàng)目的優(yōu)勢(shì)和特性,以及在實(shí)際應(yīng)用中的快速實(shí)戰(zhàn)示例,Spring AI作為一個(gè)高度抽象化的人工智能應(yīng)用程序開(kāi)發(fā)框架,為開(kāi)發(fā)者提供了便捷的模型支持、靈活的功能模塊交換和優(yōu)化能力
    2024-11-11
  • IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作

    IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作

    這篇文章主要介紹了IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java實(shí)現(xiàn)json數(shù)據(jù)處理的常用腳本分享

    Java實(shí)現(xiàn)json數(shù)據(jù)處理的常用腳本分享

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)json數(shù)據(jù)處理的常用腳本,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-03-03
  • Java實(shí)現(xiàn)計(jì)算機(jī)程序設(shè)計(jì)思路

    Java實(shí)現(xiàn)計(jì)算機(jī)程序設(shè)計(jì)思路

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)計(jì)算機(jī)程序設(shè)計(jì)思路,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringMVC實(shí)現(xiàn)文件的上傳和下載實(shí)例代碼

    SpringMVC實(shí)現(xiàn)文件的上傳和下載實(shí)例代碼

    本篇文章主要介紹了SpringMVC實(shí)現(xiàn)文件的上傳和下載實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • vscode開(kāi)發(fā)maven的javaweb項(xiàng)目并部署到tomcat及配置指南

    vscode開(kāi)發(fā)maven的javaweb項(xiàng)目并部署到tomcat及配置指南

    這篇文章主要給大家介紹了關(guān)于vscode開(kāi)發(fā)maven的javaweb項(xiàng)目并部署到tomcat及配置的相關(guān)資料,在vscode中創(chuàng)建maven項(xiàng)目,需要逐一操作下面的環(huán)節(jié),文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • java實(shí)現(xiàn)猜拳小游戲

    java實(shí)現(xiàn)猜拳小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)猜拳小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • Spring boot連接MySQL 8.0可能出現(xiàn)的問(wèn)題

    Spring boot連接MySQL 8.0可能出現(xiàn)的問(wèn)題

    這篇文章主要給大家介紹了關(guān)于Spring boot連接MySQL 8.0可能出現(xiàn)的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • springboot整合redis過(guò)期key監(jiān)聽(tīng)實(shí)現(xiàn)訂單過(guò)期的項(xiàng)目實(shí)踐

    springboot整合redis過(guò)期key監(jiān)聽(tīng)實(shí)現(xiàn)訂單過(guò)期的項(xiàng)目實(shí)踐

    現(xiàn)在各種電商平臺(tái)都有自己的訂單過(guò)期時(shí)間設(shè)置,那么如何設(shè)置訂單時(shí)間過(guò)期呢,本文主要介紹了springboot整合redis過(guò)期key監(jiān)聽(tīng)實(shí)現(xiàn)訂單過(guò)期的項(xiàng)目實(shí)踐,感興趣的可以了解一下
    2023-12-12

最新評(píng)論