Java 面向物件程式設計之介面
阿新 • • 發佈:2020-07-25
什麼是介面?
- 是抽象方法的集合,介面通常以interface來宣告,一個類通過繼承介面的方式,從而來繼承介面的抽象方法
- 語法
interface 名稱 [extends 其他的接⼝名] { // 宣告變數 // 抽象⽅法 int getMoney(); }
介面的特點
- 介面的方法都是抽象方法,預設都是public abstract,其他修飾符都會報錯
- 介面中可以含有變數,但是介面中的變數會被隱式的指定為public static final
- 類描述物件的屬性和方法,而介面則包含類要實現的方法
- 介面無法被例項化,需要被實現才行
- 一個實現介面的類,必須實現介面內所描述的所有方法,否則就必須宣告為抽象類
介面和類的區別
- 介面沒有建構函式
- 接口裡可以有靜態方法和方法體
- 介面中所有的方法必須是抽象方法(jdk8之後就不是)
- 介面不是被類繼承了,而是要被類實現
- 介面支援多繼承,類不支援多個類繼承
介面的實現(implements)
當類實現接⼝的時候,類要實現接⼝中所有的⽅法,不然類必須宣告為抽象的類,使⽤ implements關鍵字實現所有接⼝語法
class 類名 implements 接⼝名稱[, 其他接⼝名稱, 其他接⼝名稱]{ //要實現的⽅法 }
注意
- 一個類只能繼承一個類,但是能實現多個介面
- 介面能繼承另一個介面,介面的繼承使用extends關鍵字,和類繼承一樣
JDK8新特性
- interface中可以有static方法,但必須有方法實現體,該方法只屬於該介面,介面名直接呼叫該方法
- 介面中新增default關鍵字修飾的方法,default方法只能定義在介面中,可以在子類或子介面中被重寫
- default定義的方法必須有方法體
- 父介面的default方法如果在子介面或子類被重寫,那麼子介面實現物件、子類物件,呼叫該方法,以重寫為準
- 本類、介面如果沒有重寫父類(既介面)的default方法,則在呼叫default方法時,使用父類定義的default方法邏輯