Kotlin

类的继承

2020-11-21  本文已影响0人  码农修行之路

类的成员:
(1). 构造函数和初始化代码块
(2). 属性
(3). 函数
(4). 嵌套类和内部类
(5). 对象的声明

class Father: Any()

而KT Any只有三个函数 equeals() hashCode() toString() 如果想要使用Java中的Object的其它成员:

  1. 可以扩展函数
  2. 也可以强转Object
fun main() {
    var father = Father()
    (father as Object).wait(1000)
}

class Father: Any()
fun main() {
    var father = Father()
    // wait()/notify()
    (father as Object).wait(1000)
    (father as Object).notify()
    // getClass() 获取对象的java类
    father.javaClass
    father::class.java
    // clone() 覆盖方法clone() 需要继承Cloneable() 谨慎修改clone()
    Son()
    // finalize() 覆盖 只需要简单的声明就好 不需要override关键字

}

class Father : Any()
class Son : Cloneable {
    override fun clone(): Any {
        return super.clone()
    }
}
class A{
    // java规则 finalize() 不能是private的
    protected fun finalize() {
        // 终止化逻辑
    }
}

上节我们简单介绍了继承,那么我们在此说一下super关键字 调用父类的成员变量和和成员方法
super.成员变量
super.成员方法
如果子类重写父类的方法 完全重写 就不要super 可以在子类重写的方法中干自己想要的事情

抽象类

abstract class An {
    // 抽象函数没有方法体
    abstract fun eat()
    abstract fun work()
    fun runTo() {
        // 普通函数
    }
}

接口

上一篇下一篇

猜你喜欢

热点阅读