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

更新於 發佈於 閱讀時間約 4 分鐘
【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。

留言
avatar-img
留言分享你的想法!
avatar-img
HKT實驗室
22會員
261內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
HKT實驗室的其他內容
2023/12/15
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
2023/12/15
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
2023/12/11
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
2023/12/11
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
2023/12/11
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
2023/12/11
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在 Kotlin 程式語言中,定義抽象類別需要在「class」關鍵字前面加上「abstract」關鍵字。在抽象類別內,若方法是抽象的,需在「fun」前面加上「abstract」。值得留意的是,抽象類別無法直接被實體化,只能被其他類別繼承並實作其中的抽象方法。
Thumbnail
在 Kotlin 程式語言中,定義抽象類別需要在「class」關鍵字前面加上「abstract」關鍵字。在抽象類別內,若方法是抽象的,需在「fun」前面加上「abstract」。值得留意的是,抽象類別無法直接被實體化,只能被其他類別繼承並實作其中的抽象方法。
Thumbnail
在 Kotlin 程式語言中 Object 實體化單例模式,它確保一個類別只有一個唯一的實例。在 Kotlin 程式語言中,你可以使用 object 這個關鍵字來實現單例模式。
Thumbnail
在 Kotlin 程式語言中 Object 實體化單例模式,它確保一個類別只有一個唯一的實例。在 Kotlin 程式語言中,你可以使用 object 這個關鍵字來實現單例模式。
Thumbnail
繼承是物件導向程式設計中一個重要的概念,它允許你建立一個新的類別,這個類別可以繼承另一個已存在的類別的特性和行為。在 Kotlin 程式語言中,繼承可以幫助你建立出更具結構化和可維護性的程式碼。
Thumbnail
繼承是物件導向程式設計中一個重要的概念,它允許你建立一個新的類別,這個類別可以繼承另一個已存在的類別的特性和行為。在 Kotlin 程式語言中,繼承可以幫助你建立出更具結構化和可維護性的程式碼。
Thumbnail
在 Kotlin 程式語言中,Any 類別是所有其他類別的超類別,也就是說,所有的類別都直接或間接地繼承 Any 類別。這使得 Any 成為 Kotlin 物件繼承體系的根源。
Thumbnail
在 Kotlin 程式語言中,Any 類別是所有其他類別的超類別,也就是說,所有的類別都直接或間接地繼承 Any 類別。這使得 Any 成為 Kotlin 物件繼承體系的根源。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
Hi, 大家好,我是茶桁。 上一节课中,我们讲解了面向对象中的一些高阶应用,给大家介绍了一些魔术方法。并在最后,我们预告这节课内容会讲解描述符和设计模式。 好了,让我们开始吧。 描述符 这个玩意,怎么讲合适呢?这么说吧,当某一个类中,包含了三个魔术方法(__get__, __set__, _
Thumbnail
Hi, 大家好,我是茶桁。 上一节课中,我们讲解了面向对象中的一些高阶应用,给大家介绍了一些魔术方法。并在最后,我们预告这节课内容会讲解描述符和设计模式。 好了,让我们开始吧。 描述符 这个玩意,怎么讲合适呢?这么说吧,当某一个类中,包含了三个魔术方法(__get__, __set__, _
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News