Kotlin中的继承

Kotlin中的继承

如何定义继承?当然是使用open关键字啦

案例:

open class Kotlin4_1 {
    open val str: String = "我是父类"
    open var str1: String = "我可以被重写"
    open fun parent() = "I'm a parent class"
    fun parent1(): String {
        return "It's not open"
    }
}

子类继承

注意事项:
使用 : 代表继承
父类需加()

class Kotlin4 : Kotlin4_1() 

子类重写父类的变量

  • 修改父类变量值
    /*
    重写父类的val修饰变量  4种定义方式
     */
    //1.修改父类str值
   override var str:String="我是子类"
   override val str:String="我是子类"
   override val str:String
      get():String{
          var suStr=super.str
          return "$suStr 我是子类"
        }
    override var str: String = ""
        set(value) {
            field = value
        }
  • 不修改父类变量值
//    override val str: String
//        get() = super.str
  • 修改父类var定义变量
   /*
    重写父类的var修饰变量
     */
//    override var str1: String
//        get() = super.str1
//        set(value) {}
    override var str1: String = ""
        get() = if (field.isNotEmpty()) field else super.str1
        set(value) {
            field = value
        }

子类继承父类的函数

  /*
    重写父类定义函数
     */
    override fun parent(): String {
        return "I changed the parent class"
    }

    /**
     * 不可以重写父类非open定义函数
     * open代表的是java中final
     */
    fun parent1(i: Int): String {
        return ""
    }

子类继承父类的构造函数

/**
 * 构造函数的基类
 */
open class Kotlin4_2 constructor(num: Int) {
    init {
        PrintlnUtils(""+num)
    }

    constructor(num: Int, num1: Int) : this(num) {
        PrintlnUtils(""+num)
    }
}
class Kotlin4_2_1(num: Int, num1: Int) :Kotlin4_2(num){

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,258评论 9 118
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,830评论 2 9
  • Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿An...
    蓝灰_q阅读 76,981评论 31 489
  • 面向对象编程(OOP) 在前面的章节中,我们学习了Kotlin的语言基础知识、类型系统、集合类以及泛型相关的知识。...
    Tenderness4阅读 4,476评论 1 6
  • 提桶者的故事,一个提桶,一个挖管道,几年之后后者的收益远远超过前者,而且永不停息。后来,两个朋友互相帮扶,共同...
    古华阅读 248评论 0 2