N久之前,我在直播时承诺要讲的那个Kotlin括号的问题(2)


fun main() {
    val p = Person()
    p.name = "Jack"
    p.age = 19
    p.eat()
}
[好文分享:www.11jj.com]


[本文来自:www.11jj.com]

这里将p对象的姓名赋值为Jack,年龄赋值为19,然后调用它的eat()函数,运行结果下图所示。

N久之前,我在直播时承诺要讲的那个Kotlin括号的问题(2)

这就是Kotlin面向对象编程最基本的用法了。

/   继承与构造函数   /


现在我们开始学习面向对象编程中另一个极其重要的特性,继承。

继承也是基于对现实场景所总结出来的一个概念,其实非常好理解。比如现在我们要定义一个Student类,每个学生都有自己的学号和年级,因此我们可以在Student类中加入sno和grade字段。

但同时学生也是人呀,学生也会有姓名和年龄,也需要吃饭,如果我们在Student类中重复定义name、age字段和eat()函数的话就显得太过冗余了。

这个时候就可以让Student类去继承Person类,这样Student就自动拥有了Person中的字段和函数,另外还可以定义自己独有的字段和函数。

这就是面向对象编程中继承的思想,很好理解吧?接下来我们尝试用Kotlin语言实现上述功能。创建一个Student类,并在Student类中加入学号和年级这两个字段,代码如下所示:


class Student {
    var sno = ""
    var grade = 0
}


现在Student和Person这两个类之间是没有任何继承关系的,想要让Student类继承Person类,我们得做两件事才行。

件事,使Person类可以被继承。这点可能很多人会觉得奇怪,尤其是有Java编程经验的人。一个类本身不就是可以被继承的吗,为什么还要使Person类可以被继承呢?

这就是Kotlin不同的地方,在Kotlin中任何一个非抽象类默认都是不可以被继承的,相当于Java中给类声明了final关键字。

之所以这么设计其实和val关键字的原因是差不多的,因为类和变量一样,最好都是不可变的,而一个类允许被继承的话,它无法预知子类会如何实现,因此可能就会存在一些未知的风险。

自媒体 微信号:11jj 扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1

    绣球花养护注意事项(绣球养花技巧)

    大家好,小乐今天来为大家解答绣球花养护注意事项以下问题,绣球养花技巧很多人还不知道,现在让我们一起来看看吧!1、绣球花喜湿但是怕涝,

  2. 2

    苏教版数学四年级下册教学设计《运用乘法分配律进行简便计算》(含反思)

    第六单元 运算律课题:运用乘法分派律进行轻便较量 第 3 课时 总第 课时教授方针:1.让学生在解决实际问题的过程中发现并懂得乘法分派律,学

  3. 3

    梦的翅膀受了伤简谱(梦的翅膀受了伤翻唱特别好听)

    大家好,小娟今天来为大家解答梦的翅膀受了伤简谱以下问题,梦的翅膀受了伤翻唱特别好听很多人还不知道,现在让我们一起来看看吧!1、《梦的

  4. 4

    妈妈的朋友中文字幕(单身妈妈韩剧电视剧免费观看)

    大家好,小美今天来为大家解答妈妈的朋友中文字幕以下问题,单身妈妈韩剧电视剧免费观看很多人还不知道,现在让我们一起来看看吧!1、请直接

  5. 5

    立案处理!

    合作/推广:sdjf0757(微旌旗)美容美发是好多人都邑选择的消费但个体不良商家对准消费者的爱美之心使用过时产物、诱导消费、子虚宣传精心设置

  6. 6

    【爱莲说】征稿!一等奖5000元!

    首届“奇秀不减雁荡·东坡杯”五莲山水文学大赛征稿启事为深入贯彻习近平新时代中国特色社会主义思惟和党的二十大精神,果断文化自信,深条理

  7. 7

    “宝鸡医生在北京救人”的视频传到非洲刚果金、埃及了

    点击上方蓝字免费订阅!!慢城太白传媒,您生活中的贴心伴侣!  昨晚宝鸡融媒发布了一条视频↓↓↓北京西站男子晕厥宝鸡大夫紧要急救引得大

  8. 8

    团团分享 | 龙江是我家·越玩越有Young

    往期出色谋划 / 共青团黑龙江职业学院委员会运营 / 校大学生新媒体运营中心总监 / 石 倩 监制 / 梁 立 唐晓恬总编 / 马雨薇审核 / 马 莉 魏刘欣

Copyright 2024.依依自媒体,让大家了解更多图文资讯!