Kotlin学习笔记 继承

  • 超类 kotlin.Any类是Kotlin中所有类的父类,相当于java中的java.lang.Object Any只有三个抽象方法:
public open operator fun equals(other: Any?): Boolean
public open fun hashCode(): Int
public open fun toString(): String
复制代码
  • 继承 Kotlin中的类默认都是final修饰的,要让一个类可以被继承必须使用open修饰
open class Parent{
}
class Children: Parent() {
}
复制代码
  • 构造器 子类有主构造方法时,子类必须在主构造器中初始化父类
open class Parent(name: String) {
}
class Children(name: String) : Parent(name) {
}
复制代码

子类没有主构造方法时,二级构造方法必须调用super关键字初始化父类

open class Parent(name: String)  {
}
class Children : Parent {
    constructor(name: String, age: Int) : super(name) {
    }
}
复制代码
  • 重写
    1. 方法的重写 父类的方法默认final修饰,允许被重写的方法必须使用open修饰
open class Parent {
    open fun foo() {
    }
}
class Children : Parent() {
    override fun foo() {
        super.foo()
    }
}
复制代码
  1. 成员属性的重写 可以用一个var属性重写一个val属性,但不可以使用一个 val 属性重写一个 var 属性
open class Parent {
    open valage = 40
}
class Children : Parent() {
    override var age = 20
}
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值