1. 程式人生 > 實用技巧 >Java 面向物件程式設計之介面

Java 面向物件程式設計之介面

什麼是介面?

  • 是抽象方法的集合,介面通常以interface來宣告,一個類通過繼承介面的方式,從而來繼承介面的抽象方法
  • 語法
interface 名稱 [extends 其他的接⼝名] {
 // 宣告變數
 // 抽象⽅法
 int getMoney();
}

介面的特點

  1. 介面的方法都是抽象方法,預設都是public abstract,其他修飾符都會報錯
  2. 介面中可以含有變數,但是介面中的變數會被隱式的指定為public static final
  3. 類描述物件的屬性和方法,而介面則包含類要實現的方法
  4. 介面無法被例項化,需要被實現才行
  5. 一個實現介面的類,必須實現介面內所描述的所有方法,否則就必須宣告為抽象類

介面和類的區別

  1. 介面沒有建構函式
  2. 接口裡可以有靜態方法和方法體
  3. 介面中所有的方法必須是抽象方法(jdk8之後就不是)
  4. 介面不是被類繼承了,而是要被類實現
  5. 介面支援多繼承,類不支援多個類繼承

介面的實現(implements)

  當類實現接⼝的時候,類要實現接⼝中所有的⽅法,不然類必須宣告為抽象的類,使⽤ implements關鍵字實現所有接⼝

語法

class 類名 implements 接⼝名稱[, 其他接⼝名稱, 其他接⼝名稱]{
 //要實現的⽅法
}

注意

  1. 一個類只能繼承一個類,但是能實現多個介面
  2. 介面能繼承另一個介面,介面的繼承使用extends關鍵字,和類繼承一樣

JDK8新特性

  1. interface中可以有static方法,但必須有方法實現體,該方法只屬於該介面,介面名直接呼叫該方法
  2. 介面中新增default關鍵字修飾的方法,default方法只能定義在介面中,可以在子類或子介面中被重寫
  3. default定義的方法必須有方法體
  4. 父介面的default方法如果在子介面或子類被重寫,那麼子介面實現物件、子類物件,呼叫該方法,以重寫為準
  5. 本類、介面如果沒有重寫父類(既介面)的default方法,則在呼叫default方法時,使用父類定義的default方法邏輯