最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin開發(fā)中open關(guān)鍵字與類名函數(shù)名和變量名的使用方法淺析

 更新時(shí)間:2023年02月17日 10:03:08   作者:破浪會(huì)有時(shí)  
這篇文檔中,我們將解釋如何以及為什么將 open 關(guān)鍵字與類名、函數(shù)名和變量名一起使用,了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的

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

我們都知道繼承(Inheritance)是每一種面向?qū)ο缶幊陶Z言的支柱。 它是一個(gè)類的屬性和特征由另一個(gè)類派生或使用的過程。 簡(jiǎn)單來說,如果一個(gè)名為 ClassA 的類有一些變量和函數(shù),而另一個(gè)名為 ClassB 的類繼承了 ClassA,那么 ClassB 將使用 ClassA 的變量和方法。 在這里,ClassA 稱為父類,ClassB 稱為子類。 繼承使可重用性成為可能。

1 Kotlin open 在類名中的使用

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

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

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

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

所以,要使一個(gè)類可以被其他類繼承,我們?cè)谶@里必須用 open 關(guān)鍵字標(biāo)記它,否則會(huì)報(bào)錯(cuò):type is final so can’t be inherited。

2 Kotlin open 在函數(shù)名中的使用

就像類一樣,Kotlin 中的所有函數(shù)在本質(zhì)上默認(rèn)也都是 final 的,也就是說,當(dāng)函數(shù)本質(zhì)上是 final 時(shí),我們不能 override 一個(gè)函數(shù)。

函數(shù)的 override 是在子類中重新定義基類函數(shù)的過程。所以說,在父類的對(duì)應(yīng)函數(shù)前需要加關(guān)鍵字 open,與此同時(shí),在子類中的這個(gè)函數(shù)前,我們必須使用 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")
    }
}

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

3 Kotlin open 在變量名中的使用

就像類和函數(shù)一樣,Kotlin 中的變量在本質(zhì)上默認(rèn)是 final 的。 因此,要在子類中 override 它,我們需要在父類中將變量設(shè)置為 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 設(shè)置為 0,但在子類中,即 AndroidPro 類中,該值更改為 1。

一個(gè)簡(jiǎn)單的總結(jié):在 Kotlin 中,類、函數(shù)和變量在本質(zhì)上都默認(rèn)是 final 的,即它們不能從任何其他類繼承。 因此,為了使其可從其他類繼承,我們使用帶有類、函數(shù)和變量名的 open 關(guān)鍵字。

到此這篇關(guān)于Kotlin開發(fā)中open關(guān)鍵字與類名函數(shù)名和變量名的使用方法淺析的文章就介紹到這了,更多相關(guān)Kotlin open關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

盖州市| 通榆县| 峨边| 曲周县| 阿瓦提县| 遂宁市| 阿尔山市| 天门市| 邵阳市| 呼图壁县| 枣阳市| 信丰县| 龙门县| 张家口市| 广丰县| 始兴县| 湟中县| 兰坪| 延安市| 乌海市| 应用必备| 内丘县| 临泽县| 思茅市| 安岳县| 高安市| 陈巴尔虎旗| 天峻县| 平果县| 商城县| 茶陵县| 都昌县| 马公市| 义马市| 平定县| 田东县| 中西区| 瓦房店市| 锦屏县| 南丰县| 石门县|