溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java不同版本接口語法和抽象類與接口的區(qū)別是什么

發(fā)布時間:2022-04-11 11:08:48 來源:億速云 閱讀:251 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“Java不同版本接口語法和抽象類與接口的區(qū)別是什么”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Java不同版本接口語法和抽象類與接口的區(qū)別是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

什么是接口?

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

Java不同版本接口語法和抽象類與接口的區(qū)別是什么

接口的語法: (JDK7.0)

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

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

語法:

class 類名 implements 接口名{} 

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

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

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

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

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

(1) 一個接口可以同時繼承多個父接口 

(2) 語法: 

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

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

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

(2) 語法: 

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

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

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

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

(2) 語法: 

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

    注意:必須先 extends ,再 implements 

類與類之間存在:單繼承------extends

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

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

接口的影響:

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

接口的語法: (JDK8.0)

(1) 默認方法: 

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

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

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

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

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

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

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

(2) 語法: 

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

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

接口的分類

常量接口:

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

空接口:

通常稱為標記接口,接口中沒有任何屬性和抽象;
例如:IO對象序列化時應(yīng)用

函數(shù)式接口:

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

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

Java不同版本接口語法和抽象類與接口的區(qū)別是什么

讀到這里,這篇“Java不同版本接口語法和抽象類與接口的區(qū)別是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI