Kotlin Android开发·继承、构造和接口

初出茅庐在学习,君若有不喜之处,吾愿听君之见,然存己身之断!海纳百川,但存己见!
在这里插入图片描述


Kotlin继承

凡是能看到这里,相信各位都是程序员吧,但是程序员也有不同,有做Web前端的,有做后台的,也有做移动端的!做这些方向的技术人员都是程序员,所以,可以理解为继承自程序员,来表述各位的专业方向!这就是继承!可以参考:Java 学习之路 类的继承

拉出来(Java 学习之路 类的继承)文章中的猫和老虎
在这里插入图片描述

Java中的继承通过 extends 关键字来实现!Kotlin 则通过 “ : ” 来实现,接下来就用继承来实现上方的关系,先只实现猫咪那一个分支!

首先创建Cat类

open class Cat {

    var skill = " 我会上树 "
    var dislike = " 我讨厌洗澡 "

}

在这里在类前加入了open关键字,它的作用是表明这个类是可以被继承的,如果不加,则表明这个类不可以被继承!

创建黄上这个猫,并继承自猫类:

class CatYellowUp : Cat() {
    var name = "我是猫黄上"
}

继承使用 “ : ” ,后面接的是继承的类,并加括号!代表 CatYellowUp类 继承自 Cat类!

创建红桃猫,也是如此:

class CatRedPeach : Cat() {
    var name = "我是猫红桃"
}

这样就实现了最基本的继承关系!之后在main函数中运行它!

fun main() {
    val yellowUp = CatYellowUp()
    val redPeach = CatRedPeach()

    //打印黄上
    println(yellowUp.name + yellowUp.skill + yellowUp.dislike)

    //打印红桃
    println(redPeach.name + redPeach.skill + redPeach.dislike)
}

运行结果:
在这里插入图片描述


Kotlin构造

构造分为 主构造函数次构造函数 ,Kotlin中每个类都会有一个默认不带有参数的主构造函数,当然,你也可以给它加入一些参数。


主构造函数

主构造函数没有函数体,直接定义在类名之后,举个例子:

class Study(var name: String) {

    fun study() {
        println(name + " 在学习Kotlin")
    }

}

此时在main函数中调用就要传入这个参数

fun main() {
    Study("CSDN女神").study()
}

在这里插入图片描述

如果需要继承,可以这么写,举例 CSDN女神类 继承自那个写好的Cat类,当然,我没有猫的属性!

class CsdnGoddess(val par: String) : Cat() {
    
}

次构造函数

次构造函数通过 constructor 关键字来实现,举个例子

Study:

class Study {

    var str = ""

    constructor(name: String) {
        str = name + " 在学习Kotlin"
    }

    fun study() {
        println(str)
    }
}

Main:

fun main() {
    Study("CSDN女神").study()
}

在这里插入图片描述


注意点

结果是一样的!值得注意的是:当一个类主构造函数和次构造函数同时出现时,所有的次构造函数都必须调用主构造函数! 代码举例:

class CsdnGoddess(var name: String, age: String) {

    constructor(name2: String) : this(name2, "") {

    }
}


Kotlin接口

在Java中,实现接口用关键字 implements,但在Kotlin中不是,而是使用 “ : ”,没错,无论是继承还是实现接口都是使用冒号,如果需要继承并实现接口,那么只需要用逗号分割即可!如下:继承自Cat并实现Studys接口!

创建Studys接口:

interface Studys {
    fun study()
    fun sleep()
}

实现Studys接口:

class CsdnGoddess(var name: String) : Cat(), Studys {
    override fun study() {
        println(name + "学习")
    }

    override fun sleep() {
        println(name + "睡觉")
    }
}

之后便是重写方法!运行试一下!

fun main() {
    CsdnGoddess("CSDN女神").study()
    CsdnGoddess("CSDN女神").sleep()
}

在这里插入图片描述


本章小结

这就是一些基本的使用方法,有很多跟Java很相似,接下来要学习Java中所没有的一些东西!


初出茅庐在学习,君若有不喜之处,吾愿听君之见,然存己身之断!海纳百川,但存己见!




©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值