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

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

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

相关推荐
zfoo-framework11 小时前
理解kotlin limitedParallelism(1)与Actor模型
android·开发语言·kotlin
plainGeekDev12 小时前
RecyclerView.Adapter → ListAdapter
java·kotlin·gradle
plainGeekDev13 小时前
findViewById → ViewBinding
java·kotlin·gradle
Kapaseker17 小时前
用 Kotlin 构建你的第一个 Agent — 开篇
android·kotlin
三雒17 小时前
KMP 实战:Android 开发如何快速统一双端 IM 模块
android·ios·kotlin
我是唐青枫18 小时前
Kotlin let 详解:空安全、链式转换与实战示例
kotlin
唐青枫1 天前
Kotlin let 详解:空安全、链式转换与实战示例
kotlin
alexhilton2 天前
车载系统中的可扩展UI:从UI嵌入到系统窗口编排
android·kotlin·android jetpack
日光明媚2 天前
一步生成视频!One-Forcing:DMD + 零成本 GAN,训练 200 步超越多步 SOTA
android·开发语言·kotlin
plainGeekDev2 天前
Android运行时面试题:ART和JVM的区别都搞不清,别写精通了
jvm·面试·kotlin