美文网首页程序员
Kotlin类的继承问题

Kotlin类的继承问题

作者: 我在东北玩泥巴_ | 来源:发表于2019-01-03 12:00 被阅读0次

    本文是作者的学习经验,适合入坑萌新阅读,大神请绕道...

    既然Kotlin都出来这么久了,而且现在谷歌又推出一个什么flutter,再不用就有点说不过去了,另外我也是烦了java那么长的代码,于是就试着把我的app用kotlin重新架构一遍。

    都说kotlin是java最好的插件,kotlin的语法基本和Java一致(而且听说flutter用的dash跟java更像),一分钟熟悉语法,然后就可以开始编程了。

    事实证明我想的太容易了,在类的继承上就出现问题了,在java中,只要在类后填上extern 父类名称就可以了,但是在kotlin中,就会有那么一点问题...首先,kotlin用在类名后加上”:父类名称”实现继承,但关键是,它有一个主构造器,和从构造器,如果子类有主构造函数,则基类必须在主构造函数中立即初始化。

    什么意思呢?

    就是在定义好属性之后,直接在class头的父类的括号里使用就行了,主构造器是class头部的一部分,下面用init()来实现它的功能代码(真不明白这么写有哪里更简洁了。。。)

    这里就会有几个问题:

    1.如果不是特别的需求,那么init()初始化函数就没有必要了

    2.如果没有特殊需求,父类的onCreate函数就不用实现了,就是说,如果父类有一个类似与onCreate的函数用来创建什么的东西的话,直接在class头传参就可以了,不用覆盖这个oncreate然后再在里面用super...但是,接口函数还是要继承的,尽管它可能什么都不干,还是要继承,不继承就会有语法错误...

    有一种要完全消灭构造函数但是又留了一个小尾巴的感觉...

    kotlin向来以它的安全性闻名,但是,如果你并不怎么在意安全性的话(例如你是一个小白,只是想学一下kotlin用来装13的话),那么安全性的问题就很恶心了,不注意的话,代码就会有语法上的错误,所以有?的地方先把这个问号去掉吧....

    另外,Kotlin没有new关键字,类的初始化用函数构造法,即 cls = Class() 类似的格式完成。

    相关文章

      网友评论

        本文标题:Kotlin类的继承问题

        本文链接:https://www.haomeiwen.com/subject/frrfrqtx.html