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

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

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

相关推荐
滑雪的企鹅.36 分钟前
Kotlin云头条技术点剖析(项目复习02)——用户协议页面
android·开发语言·kotlin
sinat_267611914 小时前
Trae AI 进行 Android 从0 到 1的一键开发
kotlin·android studio·trae
进击的cc7 小时前
Android Kotlin:高阶函数与Lambda简化回调地狱
android·kotlin
向上_503582919 小时前
两个moudle访问一个lib包
android·java·kotlin
幸福在路上wellbeing11 小时前
Kotlin 核心学习大纲(Android 开发)
android·学习·kotlin
alexhilton1 天前
Jetpack Compose中的富文本输入
android·kotlin·android jetpack
进击的cc1 天前
Android Kotlin:扩展函数如何优雅封装Android API
android·kotlin
进击的cc1 天前
Android Kotlin:空安全机制在Android中的实战应用
android·kotlin
海盐芝士不加糖1 天前
我又又又辞职了,然后做了一款“离线版微信”
kotlin·app·android jetpack
Kapaseker1 天前
你知道屏幕上存在多少个 Window 吗
android·kotlin