kotlin 类继承的语法

写段测试代码:

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.

相关推荐
一切尽在,你来5 小时前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++
泉-java5 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
weixin_499771555 小时前
C++中的组合模式
开发语言·c++·算法
初级代码游戏5 小时前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
_waylau5 小时前
鸿蒙架构师修炼之道-架构师的职责是什么?
开发语言·华为·harmonyos·鸿蒙
2的n次方_5 小时前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
java干货6 小时前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
_F_y6 小时前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言
毕设源码-郭学长6 小时前
【开题答辩全过程】以 基于python的二手房数据分析与可视化为例,包含答辩的问题和答案
开发语言·python·数据分析
无小道6 小时前
Qt——常用控件
开发语言·qt