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的一个参数的构造方法
不理解的话就可以用调试,调试一步一步就知道