欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin類的繼承實(shí)現(xiàn)詳細(xì)介紹

 更新時(shí)間:2022年09月06日 09:43:33   作者:niuyongzhi  
這篇文章主要介紹了Kotlin類的繼承,在Java中類的繼承默認(rèn)是繼承父類的方法和參數(shù)的,但是在kotlin中默認(rèn)是不繼承的,那么我們接下來(lái)來(lái)驗(yàn)證

1.在kotlin中,默認(rèn)類都是封閉的closed的。如果要讓某個(gè)類開(kāi)放繼承,必須用open關(guān)鍵字修飾

類中的方法默認(rèn)也是關(guān)閉的。如果需要子類復(fù)寫父類的方法,也必須用open修飾。

1)定義父類,用open將類繼承打開(kāi)。用open將函數(shù)的復(fù)寫打開(kāi)。

//父類必須用open修飾,才能夠被繼承
open class Person(val name:String) {
    var age = 0
    //父類定義的函數(shù),必須有open修飾,子類才能復(fù)寫
    open fun doWork(){
        println("do nothing")
    }
}

2)定義子類。屬性是不需要open字段修飾的。子類默認(rèn)繼承父類的屬性

class Student(name: String) : Person(name) {
    override fun doWork() {
        println("do homework")
    }
}
fun main() {
    val student = Student("HanMei")
    student.age = 20
    println(student.name)
    println(student.age)
    student.doWork()
}

2.kotlin中通過(guò)is關(guān)鍵字來(lái)檢查某個(gè)對(duì)象的類型。

    val student = Student("HanMei")
    println(student is Student)
    println(student is Person)
    println(student is Any)

Java中用 instanceof 來(lái)檢查某個(gè)對(duì)象的類型。

    Student student = new Student();
    System.out.println(student instanceof Student);
    System.out.println(student instanceof Person);

3.在kotlin中存在一個(gè)超類Any。所有的類都他的子類。就向Java中的Object超類一樣。

Any類中也定義了和Object一樣的方法。但是在Any中都是空實(shí)現(xiàn)。真正的實(shí)現(xiàn)是由kotlin編譯器完成的。

public open class Any {
    public open operator fun equals(other: Any?): Boolean
    public open fun hashCode(): Int
    public open fun toString(): String
}

在定義的子類中,可以復(fù)寫這些方法

class Student(name: String) : Person(name) {
    override fun doWork() {
        println("do homework")
    }
    override fun toString(): String {
        return "name:$name age:$age"
    }
    override fun hashCode(): Int {
        return super.hashCode()
    }
    override fun equals(other: Any?): Boolean {
        return super.equals(other)
    }
}

4.as是一個(gè)類型轉(zhuǎn)換操作符??梢詫⒆宇愵愋娃D(zhuǎn)換成父類、抽象類接口。

定義一個(gè)方法,接收父類類型。

fun sayHello(p: Person) {
    println("Hello," + p.name)
}

由于類的多態(tài),我們可以直接把子類類型賦值給父類類型。

也可以通過(guò)as字段轉(zhuǎn)換成父類類型,通常我們不這樣做。

    val student = Student("HanMei")
    sayHello(student)
    sayHello((student as Person))

 

到此這篇關(guān)于Kotlin類的繼承實(shí)現(xiàn)詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Kotlin類的繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Androd 勇闖高階性能優(yōu)化之布局優(yōu)化篇

    Androd 勇闖高階性能優(yōu)化之布局優(yōu)化篇

    Android性能優(yōu)化方面也有很多文章了,這里就做一個(gè)總結(jié),從原理到方法,工具等做一個(gè)簡(jiǎn)單的了解,從而可以慢慢地改變編碼風(fēng)格,從而提高性能
    2021-10-10
  • Android變形(Transform)之Camera使用介紹

    Android變形(Transform)之Camera使用介紹

    Camera主要實(shí)現(xiàn)3D的變形,有轉(zhuǎn)動(dòng),旋轉(zhuǎn)等,Camera的源碼是由Native(本地代碼)實(shí)現(xiàn),提供的接口也比較簡(jiǎn)單,感興趣的朋友可以參考下,或許對(duì)你學(xué)習(xí)有所幫助
    2013-02-02
  • Kotlin中單利常用的五種寫法

    Kotlin中單利常用的五種寫法

    這篇文章主要給大家介紹了關(guān)于Kotlin中單利常用的五種寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)合作工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Jsoup 抓取頁(yè)面的數(shù)據(jù)實(shí)例詳解

    Jsoup 抓取頁(yè)面的數(shù)據(jù)實(shí)例詳解

    這篇文章主要介紹了Jsoup 抓取頁(yè)面的數(shù)據(jù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Android簡(jiǎn)單封裝一個(gè)MVP基類流程詳解

    Android簡(jiǎn)單封裝一個(gè)MVP基類流程詳解

    MVP是從經(jīng)典的模式MVC演變而來(lái),它們的基本思想有相通的地方:Controller/Presenter負(fù)責(zé)邏輯的處理,Model提供數(shù)據(jù),View負(fù)責(zé)顯示。下面這篇文章主要給大家介紹了關(guān)于Android從實(shí)現(xiàn)到封裝MVP的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
    2023-03-03
  • Android?DialogFragment使用之基類封裝

    Android?DialogFragment使用之基類封裝

    這篇文章主要介紹了Android?DialogFragment使用之基類封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Android 中添加水平線和垂直線方法總結(jié)

    Android 中添加水平線和垂直線方法總結(jié)

    這篇文章主要介紹了Android 中添加水平線和垂直線方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫效果(三)

    Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫效果(三)

    這篇文章主要為大家詳細(xì)介紹了Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android開(kāi)發(fā)使用Drawable繪制圓角與圓形圖案功能示例

    Android開(kāi)發(fā)使用Drawable繪制圓角與圓形圖案功能示例

    這篇文章主要介紹了Android開(kāi)發(fā)使用Drawable繪制圓角與圓形圖案功能,結(jié)合具體實(shí)例形式分析了Drawable繪制圓角矩形的實(shí)現(xiàn)步驟與使用方法,需要的朋友可以參考下
    2017-10-10
  • Android使用Handler和Message更新UI

    Android使用Handler和Message更新UI

    這篇文章主要介紹了Android使用Handler和Message更新UI的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評(píng)論