日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Kotlin開發中open關鍵字與類名函數名和變量名的使用方法淺析_Android

作者:破浪會有時 ? 更新時間: 2023-05-17 編程語言

這篇文檔中,我們將解釋如何以及為什么將 open 關鍵字與類名、函數名和變量名一起使用。

我們都知道繼承(Inheritance)是每一種面向對象編程語言的支柱。 它是一個類的屬性和特征由另一個類派生或使用的過程。 簡單來說,如果一個名為 ClassA 的類有一些變量和函數,而另一個名為 ClassB 的類繼承了 ClassA,那么 ClassB 將使用 ClassA 的變量和方法。 在這里,ClassA 稱為父類,ClassB 稱為子類。 繼承使可重用性成為可能。

1 Kotlin open 在類名中的使用

在 Kotlin 中,要從另一個類繼承一個類,可以使用以下語法:

//Base Class
open class MindOrks {
}
//Derived class
class AndroidPro : MindOrks(){
}

在上面的示例中,我們從 AndroidPro 類繼承 MindOrks 類。 因此,MindOrks 是父類,AndroidPro 是子類。

在 Kotlin 中,默認情況下所有類都是 final 的,即默認情況下它們不能被繼承。這與我們在 Java 中學到的相反。在 Java 中,我們必須明確地使類設置為 final 才行。

所以,要使一個類可以被其他類繼承,我們在這里必須用 open 關鍵字標記它,否則會報錯:type is final so can’t be inherited

2 Kotlin open 在函數名中的使用

就像類一樣,Kotlin 中的所有函數在本質上默認也都是 final 的,也就是說,當函數本質上是 final 時,我們不能 override 一個函數。

函數的 override 是在子類中重新定義基類函數的過程。所以說,在父類的對應函數前需要加關鍵字 open,與此同時,在子類中的這個函數前,我們必須使用 override 修飾符。

open class MindOrks {
    //use open keyword to allow child class to override it
    open fun courseName(){
        println("Course Name")
    }
}
class AndroidPro : MindOrks(){
    //use the override keyword to override the function
    override fun courseName() {
        println("Android for Professionals")
    }
}

這個示例中,MindOrks 父類有一個名為 courseName() 的函數,并且此 MindOrks 類由 AndroidPro 類繼承。 在 AndroidPro 類中,我們重寫了 courseName() 方法并重新定義了函數的主體。

3 Kotlin open 在變量名中的使用

就像類和函數一樣,Kotlin 中的變量在本質上默認是 final 的。 因此,要在子類中 override 它,我們需要在父類中將變量設置為 open

open class MindOrks {
    //use open keyword to allow child class to override it
    open val courseId: Int = 0
    //use open keyword to allow child class to override it
    open fun courseName(){
        println("Course Name")
    }
}
class AndroidPro : MindOrks(){
    //use the override keyword to override the variable
    override val courseId: Int = 1
    //use the override keyword to override the function
    override fun courseName() {
        println("Android for Professionals")
    }
}

在上面的示例中,MindOrks 類中的 courseId 設置為 0,但在子類中,即 AndroidPro 類中,該值更改為 1。

一個簡單的總結:在 Kotlin 中,類、函數和變量在本質上都默認是 final 的,即它們不能從任何其他類繼承。 因此,為了使其可從其他類繼承,我們使用帶有類、函數和變量名的 open 關鍵字。

原文鏈接:https://blog.csdn.net/zyctimes/article/details/127814613

欄目分類
最近更新