You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一Kotlin类中定义同名同签名的两个函数?

在Kotlin类中实现同名同签名的函数

你想要的这种在同一个类里定义同名同签名函数的需求,其实可以通过**伴生对象(companion object)**来轻松实现,这是Kotlin专门支持的一种场景。

原理说明

在Kotlin中,伴生对象里的函数属于类级别(静态)的成员,而类内部直接定义的函数是实例级别的成员。这两者的作用域不同,调用方式也不一样——类级别函数通过类名直接调用,实例函数必须通过类的对象实例调用,因此编译器不会将它们判定为重复定义。

代码示例

class A1 {
    companion object {
        fun show() {
            println("in A companion")
        }
    }
    fun show() {
        println("in A")
    }
}

fun main(args: Array<String>) {
    // 调用伴生对象里的类级别show()函数
    A1.show()
    // 创建实例后调用成员show()函数
    A1().show()
}

运行结果

执行这段代码后,控制台会输出:

in A companion
in A

这样就完美实现了你想要的效果:同一个类里有两个名字和签名完全相同的show()函数,分别对应类级别和实例级别的调用场景。

内容的提问来源于stack exchange,提问作者hunny jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 14:22:43