老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Kotlin類與繼承-創新互聯

施甸網站建設公司創新互聯,施甸網站設計制作,有大型網站制作公司豐富經驗。已為施甸上千提供企業網站建設服務。企業網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的施甸做網站的公司定做!

Kotlin使用class關鍵字聲明類,類聲明由類名、類頭(指定其類型參數、主 構造函數等)和由大括號包圍的類體組成。

類頭和類體都是可選的,如果一個類沒有類體大括號可省略

class NoBody

類的構造函數

一類可以有一個主構造函數和一個或多個次構造函數。主構造函數是類頭的一部分:它跟在類名(和可選的類型參數)后

主構造函數不能包含任何代碼塊,可用init塊初始化代碼,并且可訪問主構造函數的參數

class Person constructor(firstName: String) {
    init {
        println(firstName)
    }
}

如果類頭沒有任何注解或者可見性修飾符,constructor關鍵字可省略

class Person2(firstName: String) {
    init {
        println(firstName)
    }
}

如果構造函數有注解或可見性修飾符,這個constructor關鍵字是必需的,并且這些修飾符在它前面

class Person3 public constructor(firstName: String) {
    init {
        println(firstName)
    }
}

次構造函數

類也可以聲明次構造函數

class Animal {
    constructor(name: String) {
        println(name)
    }
}

如果一個類有主構造函數,每個次構造函數都需要委托給主構造函數,可以直接委托或者通過其它次構造函數間接委托

使用this關鍵字直接委托給當前類的主構造函數

class Animal2(name: String) {
    constructor(name: String, age: Int) : this(name) {
        println(name + age)
    }

    init {
        println(name)
    }
}

如果一非抽象類沒有任何主或者次構造函數,它會默認生成一個不帶參的主構造函數

class Animal3 {}

等同于

class Animal3(){}

將構造函數用private修飾可以防止被創建類的實例

class DontCreate private constructor() {}

創建類的實例

類定義后,需要創建實例才能使用

fun main(args: Array) {
    //實例化,Kotlin類的實例化省去了new關鍵字
    var person = Person("zhangsna")
    var person1 = Animal3()

    println(person)
    println(person1)

    //private修飾符修飾的構造方法不能實例化
    //var dontCreate = DontCreate()
}

繼承

Kotlin和Java一樣都有隱式繼承,Java中一個類如果沒有顯示的繼承一個類默認繼承Object

而Kotlin中默認繼承Any

class Example  //隱式繼承Any

Any中只有 equals()、hashCode()和toString()三個方法。附Any類源碼圖

Kotlin類與繼承

在Kotlin中所有的類默認為final類型,是不能夠被繼承的。如果該類需要被繼承則必須加上open關鍵字否則該類編譯成class后是一個final類

open class Base {
}

使用:符號實現繼承,繼承的父類必須初始化

class Car : Base() {
}

如果父類主構造函數有參數子類必須聲明一個有參數的主構造函數初始化父類的構造函數

open class Device(name: String) {
    init {
        println(name)
    }
}

class Phone(name: String) : Device(name) {
}

如果父類沒有主構造函數,那么子類每個次構造函數都必須使用super關鍵字調初始化父類次構造函數

open class Device2 {
    constructor(name: String) {
        println(name)
    }

    constructor(type: Int, weight: Int) {
        println("$type" + weight)
    }
}

class Computor : Device2 {
    constructor(name: String) : super(name)
    constructor(type: Int, weight: Int) : super(type, weight)
}

覆蓋方法和屬性

Kotlin中需要overried關鍵字顯示的覆蓋成員

open class Father {
    open var a: Int = 1
    open fun say() {
        println("father say")
    }
}

class Son : Father() {
    //必須加上overried關鍵字,覆蓋父類成員
    override var a: Int = 2

    override fun say() {
        println("son say")
    }
}

抽象類和繼承

使用abstract關鍵字定義抽象類

abstract class Abstract {
    //定義抽象方法時,必能有方法體
    abstract fun absFun()
}
class Sub : Abstract() {
    //子類必須實現父類的抽象方法
    override fun absFun() {
        println("absFun of sub")
    }
}

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


本文名稱:Kotlin類與繼承-創新互聯
URL地址:http://www.xueling.net.cn/article/dssosc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 成人午夜小视频 | www.麻豆com| 免费无码又爽又刺激A片涩涩 | 国产高潮呻吟久久久 | 97夜夜澡人人爽人人喊91洗澡 | 久久国产夫妻 | 九九热在线精品 | 亚洲欧美日韩视频高清专区 | 人妻熟女一二三区夜夜爱 | 色哟哟精品丝袜一区二区 | 免费看av大片 | 国产AV旡码专区亚洲AV苍井空 | 中文字幕一区二区三区在线不卡 | a级毛片高清免费播放 | 亚色在线| 中文字幕乱码日韩 | 午夜影视一区二区 | 五十六十日本老熟妇乱 | 成人性生交视频免费看 | 96国产精品视频 | 在线观看高清av | 国产激情高中生呻吟视频 | 女教师办公室被强在线播放 | 国产一级二级毛片 | 视频免费观看在线 | 被男人吃奶很爽的毛片 | 日日日视频 | 中文字幕丰满人伦在线 | xp123精品免费视频 | 国产69久久精品成人看动漫 | 免费看无码自慰一区二区 | 成人综合网站 | 欧洲成人在线观看 | 99日精品视频| 日韩一区二区a片免费观看 法国性xxxx精品hd | 黄上黄在线观看 | 一区二区三区人妻无码 | 人人草久久| 春意午夜影院 | 亚洲无人区码一码二码三码的含义 | 国产精品黑色丝袜在线观看 |