《Kotlin基础8》关键字:constructor(this/super)

constructor:构造函数

this,super
简单的说一下继承,this和super两个关键字,跟java差不多;
this是调用自己的,super是调用父类的
主活动:

class MainActivity : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        AAA("学生")
        var b = BBB("小王")
    }
}
open class AAA {
    
    
    constructor(name: String) {
    
    
//        Log.v("wz", "$name A")
        System.out.println("wz = $name A")
    }

    constructor(name: String, age: Int) {
    
    
//        Log.v("wz", "我是AAA的两个参数的构造方法")
        System.out.println("wz = 我是AAA的两个参数的构造方法")
    }

    init {
    
    
//        Log.v("wz", "222")
        System.out.println("wz = 222")
    }
}

class BBB : AAA {
    
    
    constructor(name: String) : this(name, 0) {
    
    
//        Log.v("wz", "我是BBB的一个参数的构造方法")
        System.out.println("wz = 我是BBB的一个参数的构造方法")
    }

    constructor(name: String, age: Int) : super(name, age) {
    
    
//        Log.v("wz", "我是BBB的两个参数的构造方法")
        System.out.println("wz = 我是BBB的两个参数的构造方法")
    }
}

//var b = BBB("小王")

类BBB继承AAA,其中BBB分别有一个参数的构造方法和两个参数的构造方法;一个参数的构造方法用的this关键字调用自己的两个参数的构造;而两个参数的构造方法用的super关键字调用的父类两个参数的构造方法;这里控制台打印的数据:

System.out: wz = 222
System.out: wz = 学生 A
System.out: wz = 222
System.out: wz = 我是AAA的两个参数的构造方法
System.out: wz = 我是BBB的两个参数的构造方法
System.out: wz = 我是BBB的一个参数的构造方法

不理解的话就可以用调试,调试一步一步就知道

猜你喜欢

转载自blog.csdn.net/qq_35091074/article/details/123730863
今日推荐