写段测试代码:
Kotlin
open class Person { // 加open关键字,可以被子类继承
open var name: String = ""
open var age: Int = 0
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
override fun toString() : String {
return "我是${name}, 年龄$age." //这里不能写this.name, this.age,不然会栈溢出。为啥??
}
}
class Daxia : Person {
var kongfus: List<String> = listOf()
var wuli: Int = 0
constructor(name: String, age: Int, kongfus: List<String>, wuli: Int) : super(name, age) {
this.kongfus = kongfus
this.wuli = wuli
}
override fun toString() : String {
return super.toString() + "我会的武功:${kongfus}, 我的武力值: $wuli"
}
}
fun main() {
val zhouzhiruo = Daxia("周芷若", 23, listOf("九阴真经"), 89)
val tianboguang = Daxia("田伯光", 30, listOf("狂风刀法"), 81)
val duanzhengchun = Daxia("段正淳", 42, listOf("一阳指"), 80)
val jiumozhi = Daxia("鸠摩智", 40, listOf("小无相功", "少林七十二绝技", "少林易筋经", "火焰刀"), 96)
println(zhouzhiruo.toString())
println(tianboguang.toString())
println(duanzhengchun.toString())
println(jiumozhi.toString())
}
打印:

ok.