kotlin 继承(extend)的2种写法

kotlin 继承有2种写法
第一种 ,多个构造函数继承,变量数不同的constructor,通过this关联,
最后一个则super到父类


import android.content.Context
import android.util.AttributeSet
import android.widget.FrameLayout

class ExpandableView:FrameLayout{
    constructor(c:Context):
            this(c,null){
    }
    constructor(context: Context?, attrs: AttributeSet?) :
            this(context, attrs,0){

    }
    constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) :
            this(context, attrs, defStyleAttr,0){

    }
    constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) :
            super(context, attrs, defStyleAttr, defStyleRes){

    }
}

第二种 , 只有1个构造函数,比如

import android.content.Context
import android.util.AttributeSet
import android.widget.FrameLayout

class ExpandableView(c:Context):FrameLayout(c){

}


或者

import android.content.Context
import android.util.AttributeSet
import android.widget.FrameLayout


class ExpandableView(
context: Context?, 
attrs: AttributeSet?, 
defStyleAttr: Int,
 defStyleRes: Int): FrameLayout(
context, attrs, defStyleAttr, defStyleRes){
}


你可能感兴趣的:(kotlin 继承(extend)的2种写法)