继承
所有的Kotlin类拥有一个共同的超类(Any),这是默认的超类,可以不用进行声明。
class Example
Any不是java.lang.Object;除了equals() 、 hashCode()、toString()它不含其它方法。
为了显示的声明一个超类,我们可以在类头部中使用冒号紧跟类型的方式定义。
open class Base(p: Int)
class Derived(p: Int) : Base(p)
如果类有一个主构造函数,基类必须在主构造函数初始化,并且使用主构造函数的参数。
如果类没有主构造函数,每个二级构造器将必须调用super方法初始化基类,或者调用另一个没有调用super的构造方法。需要注意的是,不同的二级构造器可以调用不同基类构造方法。
class MyView : View {
constructor(ctx: Context) : super(ctx)
constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs)
}
open标记一个类代表这个类不是final的,它允许其他类继承这个类。默认情况下,所有的类是final的。