您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java不同版本接口語法和抽象類與接口的區別是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java不同版本接口語法和抽象類與接口的區別是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
說到接口,USB大家肯定不陌生~
接口是一種標準、規范.
注意:接口一旦制定好,使用者和實現者都必須遵循的標準.
(1) 關鍵字:interface
(2) 語法: interface 接口名{}
(3) 接口編譯之后會生成對應的 .class文件
(4) 接口不能創建對象,但是可以聲明引用 接口名 引用名;
(5) 接口中沒有構造方法
(6) 接口中所有的屬性都是公開的靜態常量
(默認被:public static final)
(7) 接口中所有的方法都是公開抽象方法
(默認被:public abstract修飾)
注意:接口中的方法默認訪問權限為public;
類中方法默認訪問權限是 default
接口的實現類:
語法:
class 類名 implements 接口名{}
注意:實現的關鍵字為 implements
(1) 如果實現類不想成為抽象類,必須覆蓋(實現)接口中所有的方法
(2) 實現類中覆蓋接口中的方法時,訪問權限必須是public
使用:
(1) 接口類型的引用中,只能存儲對應實現類的對象,體現多態的應用
(2) 語法:
接口名 引用名 = new 實現類類名(實參);
注意:一個接口可以定義多個實現類
接口的繼承性:(很重要哦~)
接口與接口之間為多繼承的關系
(1) 一個接口可以同時繼承多個父接口
(2) 語法:
interface 接口名 extends 父接口名1,父接口名2{}
類與接口之間為多實現的關系
(1) 一個類可以同時實現多個接口
(2) 語法:
class 類名 implements 接口名1,接口名2{}
(3) 一個類同時實現多個接口,不想成為抽象類,則需要實現所有接口中所有方法
(包括所實現接口的父接口中的方法)
一個類實現多個接口的同時還有可以繼承一個類
(1) 如果一個類繼承一個父類同時實現多個接口,必須先繼承,再實現
(2) 語法:
class 類名 extends 父類名 implements 父接口1,父接口2{}
注意:必須先 extends ,再 implements
類與類之間存在:單繼承------extends
類與接口之間存在:多實現------implements
接口與接口之間存在:多繼承------extends
接口的影響:
1.由于接口之間為多繼承的關系,同時類與接口之間是多實現的關系,所以讓多態更加多元化和復雜
2.如果強制類型轉換的雙方只要有一方為接口類型,則編譯一定通過,運行分以下兩種情況:
a.如果轉換的引用中存儲的實際對象類型是要轉換類型的一種,運行通過
b.如果轉換的引用中存儲的實際對象類型不是要轉換的一種,編譯通過,但是運行報錯,錯誤信息:
Java.lang.ClassCastException(類型轉換異常)
(1) 默認方法:
a. public default 返回值類型 方法名(形參列表){
// 方法的實現部分
}
b. 注意:接口中方法被 default修飾代表,此方法允許帶有方法實現部分
c. 默認方法訪問權限 為 public
d. 默認方法允許被覆蓋,但是覆蓋時訪問修飾符為 public
(2) 靜態方法:
a. public static 返回值類型 方法名(形參列表){
// 方法的實現部分
}
b. 接口中靜態方法訪問權限是public
(1) 接口中從9.0開始,方法可以被 private修飾
(2) 語法:
private 返回值類型 方法名(形參列表){
// 方法的實現
}
(3) 私有方法供接口內部使用,通常將其他方法的共同邏輯部分提取,減少代碼冗余
接口中只有屬性、沒有方法,應用很少
通常稱為標記接口,接口中沒有任何屬性和抽象;
例如:IO對象序列化時應用
接口中有且只有一個抽象方法(靜態和默認不關注),廣泛應用在Lambda表達式中
抽象類和接口的區別? (要牢記哦~)
讀到這里,這篇“Java不同版本接口語法和抽象類與接口的區別是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。