继承

所有的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的。

results matching ""

    No results matching ""