写段测试代码:
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.