2023-12-08|閱讀時間 ‧ 約 3 分鐘

【Kotlin 入門指南】介面 (Interfaces)

【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

介面

在 Kotlin 程式語言中,使用關鍵字「interface」來定義介面。在介面中,每個函數預設都是開放的,不需要額外使用「open」關鍵字來宣告。但是,如果你要實作介面中的屬性與函數,就需要使用「override」關鍵字。

介面只定義了方法的名稱、參數和返回值,沒有方法的具體實現。與之不同的是抽象類別,它有抽象方法(即沒有具體實現的方法),同時也可以包含有實現的方法。

介面範例

使用 interface 關鍵字建立介面,後面接著定義介面的名稱,大括號內,約定若要實作這個介面,需履約實作哪些方法。

interface PersonInterface {
fun showName()
}

若要實作「PersonInterface」介面,需遵守介面規定的「showName」方法。若沒有遵守實作介面內的方法,編譯會顯示錯誤。

class Account : PersonInterface {
override fun showName() {
println("name: HKT")
}
}

使用時的範例:

fun main() {
//實體化
val account = Account()

account.showName()
}

輸出結果

name: HKT


在 Android 應用範例

在 Android 應用中,介面常被運用於實作 Callback 機制。舉例來說,常見的按鈕點擊事件、adapter 列表項目元件監聽到被點擊事件,都採用了介面的概念。

以下是按鈕點擊事件和列表項目點擊事件的介面實作:

按鈕點擊事件 Interface

  public interface OnClickListener {
void onClick(View v);
}

列表項目點擊事件 Interface

interface IItemClickListener {
fun onItemClickListener(data: Feature)
}


介面與抽象類別差異比較

介面

  • 定義方法的名稱、參數和返回值。
  • 不含方法的具體實現。
  • 需要使用 override 來實作介面中的方法。

抽象類別

  • 可以含有實現和未實現的方法。
  • 可以有屬性。
  • 使用 abstract 關鍵字來定義抽象方法。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.