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

【Kotlin 入門指南】抽象類別 (abstract)

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

抽象類別

在 Kotlin 程式語言中,定義抽象類別需要在「class」關鍵字前面加上「abstract」關鍵字。在抽象類別內,若方法是抽象的,需在「fun」前面加上「abstract」。值得留意的是,抽象類別無法直接被實體化,只能被其他類別繼承並實作其中的抽象方法。

抽象類別範例

在這個範例中,定義了一個抽象類別 MyAbstractClass,裡面包含一個抽象方法 myFun(),這個方法沒有具體的內容,只有方法名稱和定義。

abstract class MyAbstractClass {
abstract fun myFun()
}

接著,程式碼定義了一個繼承自 MyAbstractClass 的類別 MyClass,它必須實作 MyAbstractClass 中的抽象方法 myFun()。在這個範例中,MyClass 類別覆寫了 myFun() 方法,並在其中印出了 "myFun" 的訊息。

class MyClass : MyAbstractClass() {
override fun myFun() {
println("myFun")
}
}

最後,在 main() 函式中建立了 MyClass 的實例,並呼叫了 myFun() 方法。這將會執行 MyClass 中所覆寫的 myFun() 方法,印出 "myFun" 的訊息。

fun main() {
MyClass().myFun() //myFun
}

在 Android 應用程式中範例

在 Android 應用程式中,抽象類別 (Abstract) 在資料列表 RecyclerView 的 Adapter 中被廣泛運用。

public abstract static class Adapter<VH extends ViewHolder> {
...
...
...
@NonNull
public abstract VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType);


public abstract void onBindViewHolder(@NonNull VH holder, int position);


public int getItemViewType(int position) {
return 0;
}
...
...
...

}

這個抽象類別提供了必要的框架供開發者建立自訂的 Adapter。在它裡面,onCreateViewHolder 方法負責建立並回傳 ViewHolder,onBindViewHolder 方法則負責綁定資料到特定的 ViewHolder 上。透過繼承這個抽象類別,可以輕鬆地建立符合個別需求的 Adapter。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.