Kotlin 对象

文章目录

对象表达式(匿名对象)

在 Kotlin 中可以使用object {}声明一个匿名的对象,我们无需声明这个对象的类:

kt 复制代码
fun main() {
    val any = object {
        fun greet() = print("Hi")
    }

    any.greet()
}
复制代码
Hi

在匿名对象中,我们 能声明抽象成员。

匿名对象可以继承自类或接口,默认情况下它的类型是Any,继承后它将可以是所继承的所有类型(如果显式声明其类型,它将是声明的类型):

kt 复制代码
open class Greeter {
    fun greet() = print("Hi")
}


interface Runnable {
    fun run()
}


fun main() {
    val any = object: Greeter(), Runnable {
        override fun run() = println("Run")
    }

    any.run()
    any.greet()
}
复制代码
Run
Hi

对象的声明

我们可以使用object,像定义类class那样定义一个对象:

kt 复制代码
fun interface Runnable {
    fun run()
}

        
object Greeter: Runnable {
    fun greet() = print("Hi")
    
    
    override fun run() = println("Run")
}


fun main() {
	Greeter.run()
    Greeter.greet()
}
复制代码
Run
Hi

对象 有构造函数,因为它 可被实例化。

对象中 能声明抽象方法,因为它可被继承。

相关推荐
__Yvan4 小时前
Kotlin 的 ?.let{} ?: run{} 真的等价于 if-else 吗?
android·开发语言·前端·kotlin
tangweiguo030519874 小时前
Android WorkManager 完整实战教程(含完整文件)
android·kotlin
顾道长生'9 小时前
(Arxiv-2026)HiAR:基于分层去噪的高效自回归长视频生成
回归·kotlin·音视频·长视频生成
Kapaseker9 小时前
Compose 中 CompositionLocalProvider 到底是干啥的
android·kotlin
陆业聪1 天前
让 Android 里的 AI 真正「干活」:Function Calling 工程实现全解
android·ai·kotlin
千码君20161 天前
kotlin:函数式参数
java·算法·kotlin
Kapaseker1 天前
Window 内外藏机巧 旧岗新页见真章
android·kotlin
蹦哒2 天前
Kotlin 与 Java 语法差异
java·python·kotlin
Kapaseker2 天前
五分钟搞定 Compose 的打字机效果
android·kotlin
Fate_I_C2 天前
Android现代开发:Kotlin&Jetpack
android·开发语言·kotlin·android jetpack