- 超类 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) {
}
}
复制代码
- 重写
- 方法的重写 父类的方法默认final修饰,允许被重写的方法必须使用open修饰
open class Parent {
open fun foo() {
}
}
class Children : Parent() {
override fun foo() {
super.foo()
}
}
复制代码
- 成员属性的重写 可以用一个var属性重写一个val属性,但不可以使用一个 val 属性重写一个 var 属性
open class Parent {
open valage = 40
}
class Children : Parent() {
override var age = 20
}
复制代码